当我使用$('#calender).fullCalendar('removeEvents');
时,这只会删除当前月份(12月)的事件,而不会删除其他事件(11月,1月,2月......)。
如何删除所有活动?
$(document).ready(function(){
var UsrAux;
UsrAux=$('#name').val();
$('#name').blur(function(){
UsrAux=$('#name').val();
var source = {
url: 'CalendarServer.php',
type: 'POST',
data: { // Parms
uno: 'Somenthing',
UsrCdg: UsrAux
},
error: function() {
alert('error!');
},
color: '#e2ebef', // a non-ajax option
textColor: 'black' // a non-ajax option
};
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', source);
});
$('#calendar').fullCalendar({
draggable: true,
height: 400,
cache: true,
eventSources: [
// your event source
{
url: 'CalendarServer.php',
type: 'POST',
data: { // Parms
uno: 'something',
UsrCdg: $('#name').val()
},
error: function() {
alert('error!');
},
color: '#e2ebef', // a non-ajax option
textColor: 'black' // a non-ajax option
}]
});
});
答案 0 :(得分:0)
如果要删除事件的子集,在这种情况下,我们将通过添加到每个事件的添加类名称(“模板”)进行过滤:
$myCal.fullCalendar( 'removeEvents', function( event ) {
if( _.indexOf( event.className, 'template' ) > -1 ) {
return true;
}
else {
return false;
}
} );
在你的情况下,我想每个月的变化是从给定的来源重新加载。我避免这种行为的一种方法是将源加载到日历之外,然后只注入数组。例如:
var myCalEvents = fetchEvents(...);
// this is not reload with each change in calendar view
$myCal.fullCalendar( 'addEventSource', myCalEvents );
修改强>
我会打破这个问题。
首先创建一个功能来拉下每个人的日历
function getCalByPersonId( perId ) {
// returns an array of fullcalender events pulled from the server
// note each event will have a css class added by the name of
// 'perid_x' where 'x' ist he perId parameter
return ...{ajax call goes here}
}
接下来创建一个函数来处理person change事件。
function handlePersonChangeEvent( event ) {
// first extract person id
var perId = ... {code to get the person id}
// clear any existing events for a previously selected person
if( currentPerId && currentPerId !== perId ) {
...{remove code from above goes here, but replace 'template' with 'perId_x' where x is the currentPerId}
}
// add the new person's events to the calendar
$myCal.fullCalendar( 'addEventSource', function() {
return getCalByPersonId( perId );
} );
// set the current person id
currentPerId = perId;
}
我相信会或多或少会做你想要完成的事情。