Fullcalendar,事件文件管理器有时不起作用

时间:2011-08-30 15:50:56

标签: fullcalendar

在页面上我有fullcalendar,变量决定了现在如何显示(所有事件或带有过滤器的事件),用于更改变量值的按钮和应用过滤器的函数。

变量(true - 显示所有事件,false - 使用过滤器):

 var isShownWithCancelEvents = true;

按钮和它的点击功能:

$('.fc-header-left').append('<span class="fc-button fc-button-show-with-canceled-events fc-state-default"><span class="fc-button-inner"><span id="show_without_canceled_events" class="fc-button-content">Show with filter</span><span class="fc-button-effect"><span></span></span></span>');
$(".fc-button-show-with-canceled-events").click(function() {
    isShownWithCancelEvents = !isShownWithCancelEvents;
    prepareEvents();                               
});

函数prepareEvents():

function prepareEvents(){
    if (isShownWithCancelEvents) {
        $('#calendar').fullCalendar('refetchEvents');
        $(".fc-button-show-with-canceled-events .fc-button-content ").text("Show with filter");
    }
    else {
        $('#calendar').fullCalendar ( 'removeEvents', filter );
        $(".fc-button-show-with-canceled-events .fc-button-content ").text("Show all events");
   }
}     

过滤功能:

function filter(event) {
    return (event.ec_e_id !== null);
} 

同样在fullcalendar中我使用选项:

viewDisplay: function(view) {
    prepareEvents(); 
},

按钮正在运行,问题在于fullcalendar选项。

  1. 页面上的默认视图是agendaWeek。我打开页面并单击按钮,变量的值更改为false,过滤器应用。没关系。然后我点击“月”按钮,查看月份的变化。我看到了所有的事件。然后我点击“周”按钮并查看对agendaWeek的更改 - 事件被过滤。我再次单击“月”按钮 - 在此视图上也会过滤事件。所以,问题是第一次将视图更改为另一个时。
  2. 我打开页面并单击按钮,变量的值更改为false,过滤器应用。没关系。然后我向左或向右导航(下一周或前一周),我看到所有事件。然后我返回,过滤事件并查看那里的所有事件。
  3. 如果我将警报添加到fullcalendar选项

    viewDisplay: function(view) {
        alert("something");
        prepareEvents(); 
    },
    

    一切正常,过滤器每次都有效。

0 个答案:

没有答案