2012-12-11 46 views
0

请检查代码,供大家参考默认事件

<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:

实施平变化函数(事件过滤器)后,它会如果用户改变过滤器选项显示的事件。默认情况下不显示事件。请指教我如何修复它

+0

检查开发者工具,看看你是否得到了正确的数据传回的要求吗? –

+0

此代码是自定义还是来自扩展?你有没有尝试过自己解决你的问题,我仍然有点困惑。你可以请更详细地解释 – Lodder

+0

@Lodder如果我删除$('#project')。change(function(){ var filter = $('#project')。val(); $('#calendar' (''calendar')。fullCalendar('addEventSource','json-events.php?filter ='+ filter); $('#calendar')。fullCalendar(' rerenderEvents'); });然后,fullcalendar将默认显示所有事件。 – nkdweb

回答

0

您的日历最初没有事件源。

删除

$('#calendar').fullCalendar('addEventSource', 'json-events.php?filter='+filter); 

,而是把它的初始化:

events: json-events.php?filter='+filter 
+0

感谢您的回复,但它不起作用! :(如果我删除$('#project')。change(function(){var filter = $('#project').val(); $('#calendar')。fullCalendar('removeEvents'); $ ('#calendar')。fullCalendar('addEventSource','json-events.php?filter ='+ filter); $('#calendar')。fullCalendar('rerenderEvents');});然后fullcalendar将显示所有的事件默认情况下 – nkdweb

+0

我没有看到你在哪里定义事件源 - 虽然它可以显示默认的所有事件。 –

0

如果你想日历最初显示的所有事件(场景1 ??),你需要有一个事件参数当您初始化fullcalendar时(或者手动调用更改事件)。在发生更改事件之前,您的更改过滤器不会被调用,因此当页面加载日历时将为空。

$('#calendar').fullCalendar({ 
    ... 
    events: json-events.php?filter='+filter 
}); 

on change事件应该可以工作,但AFIK你可以摆脱rerenderEvents,因为addEventSource应该照顾到这一点。

如果你想改变滤波器参数而不删除和添加事件源每次看到this previous answer