2012-12-11 73 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