请检查代码以供参考
<script type='text/javascript'>
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar({
editable: true,
eventDrop: function(calEvent,dayDelta,minuteDelta,allDay,revetFunc) {
var stDate = $.fullCalendar.formatDate(calEvent.start, 'dd-MM-yyyyy');
$.post('event_update.php',{'allday':allDay, 'event':calEvent.id, 'start':stDate}, function(response){
if(response.length > 0){
alert(response);
revertFunc();
}
});
},
loading: function(bool) {
if (bool) $('#loading').show();
else $('#loading').hide();
}
});
$('#project').change(function() {
var filter = $('#project').val();
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', 'json-events.php?filter='+filter);
$('#calendar').fullCalendar('rerenderEvents');
});
});
</script>
场景 1 :
在实现onChange功能之前,完整的日历将显示所有事件。
场景 2 :
实现onchange功能(事件过滤器)后,如果用户更改了过滤器选项,它将显示事件。默认情况下不显示任何事件。请告诉我如何修复它
您的日历最初没有事件源。
删除
$('#calendar').fullCalendar('addEventSource', 'json-events.php?filter='+filter);
而是将其放在初始化中:
events: json-events.php?filter='+filter
如果您希望日历最初显示所有事件(场景 1??),则需要在初始化完整日历时具有事件参数(或者手动调用更改事件)。在发生更改事件之前,不会调用更改筛选器,因此当页面加载时,日历将为空。
$('#calendar').fullCalendar({
...
events: json-events.php?filter='+filter
});
更改事件应该有效,但 AFIK 您可以摆脱重新渲染事件,因为 addEventSource 应该处理这个问题。
如果要更改 filter 参数而不每次都删除和添加事件源,请参阅上一个答案