2014-09-04 134 views
2

我不希望用戶能夠在我的日曆中創建allDay事件。我希望日曆通過單擊日期將月視圖更改爲議程日視圖,但每次單擊日期日曆時都會將視圖更改爲議程日期,但它會嘗試創建allDay事件。JS Fullcalendar如何禁用allDay事件?

$('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
    dayClick: function(date,allDay, jsEvent, view) { 
     if (allDay) { 
      // Clicked on the entire day 
      $('#calendar').fullCalendar('gotoDate',date) 
      $('#calendar').fullCalendar('changeView', 'agendaDay') 
     } 
     view = $('#calendar').fullCalendar('getView'); 
    }, 
    selectable: function(){ 
     if(view.name=='agendaDay' ){ 
      return true; 
     }else{ 
      return false; 
     } 
    }, 
    selectHelper: true, 
    select: function(start, end) { 
     var title = prompt('Event Title:'); 
     var eventData; 
     if (title) { 
      eventData = { 
       title: title, 
       start: start, 
       end: end, 
      }; 
      $('#calendar').fullCalendar('renderEvent', eventData, true); 
     } 
     $('#calendar').fullCalendar('unselect'); 
    } 
}); 

回答

2

您正在操作dayClickselectableselect;而這可以通過只處理select來實現:

select: function(start, end, jsEvent, view) { 
    if (view.name=='month') { 
     $('#calendar').fullCalendar('changeView', 'agendaDay'); 
     $('#calendar').fullCalendar('gotoDate', start) 
    } else { 
     var title = prompt('Event Title:'); 
     var eventData; 
     if (title) { 
      eventData = { 
       title: title, 
       start: start, 
       end: end 
      }; 
      $('#calendar').fullCalendar('renderEvent', eventData, true); 
     } 
    } 
    $('#calendar').fullCalendar('unselect'); 
} 

http://jsfiddle.net/wijgerden/t81qtupz/使用FullCalendar V2.1.1一的jsfiddle演示;請注意,這仍允許用戶在agendaWeekagendaDay視圖上創建全天事件。在month視圖中,選擇日期將會將視圖切換到agendaDay(多選時的第一天),同時仍允許點擊事件。

+0

謝謝你解決了我的問題! – Sambero 2014-09-05 05:18:34