2014-09-04 135 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