默认事件在更改功能后未显示在全日历中



请检查代码以供参考

<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 参数而不每次都删除和添加事件源,请参阅上一个答案

相关内容

  • 没有找到相关文章

最新更新