我正在使用 fullcalendar 1.6.3 和 Drupal 7(因此现在需要回到 1.6.3)。我有一些代码,我想在每次日历 View 更改(通过 ajax 请求)时运行——在时间上向前或向后,或者在月/周/日 View 之间。
根据一些测试,我可以通过破解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 问题,而不是一个完整日历问题,但是有什么建议吗?我真的很努力不去破解核心;谢谢!
最佳答案
根据documentation eventAfterAllRender
是一个回调,所以你可以这样做:
$('#your-calendar-element').fullCalendar({
eventAfterAllRender: function (view) {
// add your code here
}
});
关于javascript - 如何(某种程度上)向 fullcalendar 的 renderEvents 处理程序添加代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30084611/