2013-09-26 20 views
2

我正在使用網格設置爲1/2小時間隔(slotMinutes設置爲30分鐘)的fullcalendar。我希望默認的點擊選擇是至少1小時的事件,但我希望開始時間以30分鐘爲增量。換句話說,我不希望用戶能夠突出顯示小於一個小時的任何時間段,但我希望他們能夠突出顯示從小時或半小時開始的1小時插槽(即:1:30 - 2:30)。在FullCalendar問題中設置默認點擊選擇突出顯示

如果我將snapMinutes設置爲60,則可以通過不讓它們突出顯示少於1小時的內容來解決第一部分問題。但是,它不會讓用戶選擇一小時內完全不在一小時內的插槽(即:它可以選擇1:00-2:00,但不能選擇1:30-2:30)。有什麼辦法可以做到這一點?

這裏是我使用的日曆(CoffeeScript的)

options = { 
    defaultView: 'agendaWeek' 
    defaultEventMinutes: 60 
    selectable: true 
    selectHelper: true 
    eventTextColor: 'black' 
    allDayDefault: false 
    header: { 
     left: 'prev,next today' 
     center: '' 
     right: 'title' 
    } 
    titleFormat: { 
     month: 'MMMM yyyy' 
     week: "MMM d[, yyyy]{ '—'[ MMM] d, yyyy}" 
     day: 'dddd, MMM d, yyyy' 
    } 
    ignoreTimezone: true 
    slotMinutes: 30 
    snapMinutes: 60 
} 
elm.fullCalendar(options) 

下面是這個的jsfiddle: http://jsfiddle.net/lcrees/9f82c/

我的問題的第二部分是,我希望能夠設置上面的動態默認最小點擊選擇。從這個問題看來,我無法動態更新snapMinutes選項而不破壞並重新創建日曆:
https://code.google.com/p/fullcalendar/issues/detail?id=293

其他建議?
Lorill

+0

在SO你通常需要顯示第一次嘗試;你有沒有試圖自己編碼呢?如果是這樣,請發佈相關代碼。否則,這個問題太廣泛了。 –

+1

嗨,Teeg,我已經添加了我用於日曆的代碼。 – lcrees

+0

感謝user2821493(如果這是你的真名......)。我無法自己回答這個問題,因爲我從來沒有使用過這個庫,但只是查看文檔,我認爲你對snapMinutes是正確的,但我不認爲有直接選擇去做你想要的其他部分。我想你可能需要使用其中的一個回調,比如'eventDrop'或'eventDragStop'或者其他東西;基本上無論哪種回調都會讓您自定義控制事件拖動。 –

回答

0

如果我正確理解您的問題您可以使用fullcalendar select方法覆蓋dayClick方法(請參閱文檔)並自行選擇(請再次參閱docs)。 U可以使用dayClick的'date'參數作爲選擇的統計時間,並通過添加1h來獲得結束時間。 上面的效果是,點擊指定的日期,你會從點擊的單元格中獲得長度爲1小時的選擇。 希望這會有所幫助,讓我知道如果你需要更具體的建議(我已經花了很多時間最近在fullcalendar的這種問題掙扎)

+0

嗨4rlekin,我不認爲這會奏效。該dayClick回調只能夠順利通過鼠標釋放解僱,也只有一個選擇尚未做出(即:它被解僱,如果它是一個點擊一個插槽內釋放,但如果你點擊並拖動來進行選擇和在不同的位置釋放鼠標,dayClick不會觸發)。我在我的小提琴上面試過這個,並證實了這一點。 – lcrees