我有一个单击事件,在其中我正在重新加载完整的日历。但在重新加载之后,我想隐藏执行单击事件的当前元素。但不知怎么的,它不起作用。下面是我的代码。
$(document).on("click", 'a.btnExpandCollapseBook', function (e) {
$('#calendar2').fullCalendar('destroy');
calendarOptions.events = tempSourcearr; // assigning the events
$('#calendar2').fullCalendar(calendarOptions);
$(this).hide();// This is not working...
});
您可以将自定义属性(例如"hidden"true/false)添加到事件中,并使用eventRender根据"hided"属性控制可见性
http://jsfiddle.net/hmspswu3/
var calendarOptions = {
defaultDate: '2015-12-01',
events: [{
id: 1,
start: '2015-12-03',
end: '2015-12-07',
title: 'Event 1',
hidden: false
}, {
id: 2,
start: '2015-12-13',
end: '2015-12-17',
title: 'Event 2',
hidden: false
}],
eventRender: function(event, element, view) {
return !event.hidden;
},
eventClick: function(event, jsEvent, view) {
event.hidden = true;
calendarOptions.events = $('#calendar').fullCalendar('clientEvents');
$('#calendar').fullCalendar('destroy');
$('#calendar').fullCalendar(calendarOptions);
}
};
$('#calendar').fullCalendar(calendarOptions);
感谢每一个人,我找到了如下的替代解决方案。
$.each($('#calendar2').fullCalendar('clientEvents'), function (i, item) {
$('#calendar2').fullCalendar('removeEvents', item.id);
}); // removes the event one by one
$('#calendar2').fullCalendar('addEventSource', tempSourcearr); // assign the new data source.
用于销毁用途:
$('#calendar2').fullCalendar('destroy');