2011-10-01 170 views
1

我正在使用FullCalendar,並使用select:function來允許用戶選擇一個或多個天,然後輸入一個值,我將稍後保存到數據庫。我想在添加新選項之前清除選區中的現有事件,但我無法從select函數內訪問event屬性,然後調用fullCalendar('removeEvent',);.有任何想法嗎?jquery FullCalendar - 刪除選區中的所有事件

謝謝!

回答

0

FullCalendar插件提供了一種方法clientEvents,該方法返回在客戶端本地存儲的所有事件(例如,如果日曆從json訂閱源檢索數據,則只能獲取已下載的事件)。由於您無法選擇不可見的內容,因此所選區域中的所有事件肯定都在此緩存中。有關更多信息,請參閱http://arshaw.com/fullcalendar/docs/event_data/clientEvents/

此方法接受可選參數idOrFilter,用於在返回事件之前應用過濾器。這可以是一個ID列表或(對你更有價值)一個功能。此函數獲取事件對象並返回true(意思是:將此事件包含在結果集中)或false(放棄它)。

var eventsToDelete = $('#calendar').fullCalendar('clientEvents', function(event) { 
    // check if event.start >= selection.start && event.start < selection.end ... etc. 
}); 

eventsToDelete現在是一個包含所有要刪除的事件的數組。

+0

你能詳細解釋一下嗎?我有同樣的問題,但我不明白如何做你的話。可能更多的代碼? :) 謝謝! –