2013-01-18 35 views
0

我試圖使這項工作的方式是「封鎖一天」以使其不可用和可用。即使有事件發生,我如何才能讓整天的屏蔽點擊?Fullcalendar:在'dayClick'彈出式窗口中如果存在事件

如果當天有事件要阻止,我希望在彈出窗口中看到該事件。

其中一個問題是,目前激活「dayClick」的唯一方法是如果你點擊一個空白區域。但是,如果你點擊一個事件,它不會觸發「dayClick」。任何幫助是極大的讚賞!

回答

2

點擊某個事件(eventClick)時,dayClick需求的數據不可用。我不知道有什麼方法可以深入瞭解dayClick。即,我想不出調用$ .trigger調用dayClick的方法。

你應該能夠在eventClick回調中做你需要的。創建單個事件時,請將屬性設置爲可用或不可用。也許這樣的事情:

var events = [{ 
       id: 1, 
       title: 'This is a blocked day', 
       start: 'Wed, 18 Oct 2009 08:00:00 EST', 
       color:'#fff',// red 
       blocked: true 
      }, 
      { 
       id: 2, 
       title: 'This is an available day', 
       start: 'Thu, 19 Oct 2009 08:00:00 EST', 
       color: '#07A800', // green 
       blocked: false 
      }]; 

$('#cal').fullcalendar({ 
    events: events, 
    eventClick: function(calEvent, jsEvent, view) { 
     if(calEvent.blocked == true) {// be sure to set a 'blocked' property in your event 
      alert('This time is not available!');     
     } else { 
      $('#newEventDialog').dialog('open');// open a dialog to save new event 
     } 
    } 
}); 
+0

基本上,我基本上想通過「阻塞」一天來完成灰化工作。因此,當天不會創建任何事件。如果一天中已有事件發生,則將這些事件吐出列表中。如果你還想阻止這一天,那麼你可以從這個列表/彈出窗口中完成。 – JuanArreguin

+0

api沒有提供一種方法來「灰化」某個特定的日子。你將不得不使用eventClick和dayClick回調來語法控制行爲。您可能需要執行兩組事件。一套是您的實際事件,另一套是您用於佔用空間以「變灰」的日子。 – ShadeTreeDeveloper