0
我正在使用fullcalendar 1.6.3以及Drupal 7(因此目前需要回到1.6.3)。每當我的日曆視圖發生變化(通過ajax請求)時,我都想要運行一些代碼 - 前進或後退,或者月/周/日視圖之間。如何(有點)將代碼添加到fullcalendar的renderEvents處理程序中?
基於一些測試,我可以通過黑客來源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問題比fullcalendar問題更多,但有沒有什麼建議嗎?我真的不想破解核心;謝謝!
這是工作;非常感謝。可悲的是,我仍然遇到了一個問題,即Drupal Views模塊負責創建fullcalendar實例。因此,當我添加這段代碼時,我會在頁面上看到第二個日曆,這當然會把所有事情搞砸。但這是另一回事,而不是你所關心的(除非你碰巧知道答案)...... –