我正在使用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
}
});