2011-10-01 174 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

你能详细解释一下吗?我有同样的问题,但我不明白如何做你的话。可能更多的代码? :) 谢谢! –