如何(有点)将代码添加到全日历的渲染事件处理程序?



我正在使用fullcalendar 1.6.3和drupal 7(因此,目前需要在1.6.3上返回)。我有一些代码,我想每次更改日历的视图(通过AJAX请求)(通过AJAX请求)运行 - 时间或向后或向后或在月/每周/天之间。

基于某些测试,i 可以通过入侵renderEvents的来源来做到这一点:

function renderEvents(modifiedEventID) { // TODO: remove modifiedEventID hack
    if (elementVisible()) {
        currentView.setEventData(events); // for View.js, TODO: unify with renderEvents
        currentView.renderEvents(events, modifiedEventID); // actually render the DOM elements
        currentView.trigger('eventAfterAllRender');
        // my_code_here();
    }
}

但这当然是错误的。不幸的是,我无法找出其他方法,这可能是因为我的JavaScript知识有一些明显的差距。我尝试在eventAfterAllRender上设置事件处理程序:

var eventAfterAllRenderEvent = new Event('eventAfterAllRender');
document.addEventListener('eventAfterAllRender', function (e) {my_code_here() }, false);
document.dispatchEvent(eventAfterAllRenderEvent);

,但(对我来说)仅在页面加载上运行,而不是在Ajax事件之后进行。

这可能是一个JavaScript问题,而不是一个全面的问题,但是那里有任何建议吗?我真的在努力不黑客核心;谢谢!

根据文档eventAfterAllRender是一个回调,因此您可以这样做:

$('#your-calendar-element').fullCalendar({
    eventAfterAllRender: function (view) {
        // add your code here
    }
});

相关内容

  • 没有找到相关文章

最新更新