2012-08-27 56 views
0

當用戶在FullClickndar dayClick事件中的月視圖中單擊某個日期時段時,我希望有一個警報聲明此特定日期不可用,例如,勞動節假期。特定日期的全日曆中的DayClick事件警報

我寫了這個代碼,但它不工作,我需要有人幫我瞭解什麼是錯在這裏:

dayClick: function (date, allDay, jsEvent, view) { 
    var myDate=new Date(); 
    myDate.setFullYear(2012,09,02); 

    if (date == myDate){ 
     alert('Labor Day Weekend. No reservations available'); 
     $(this).css('background-color', 'red'); 
     return false; 

此外,「紅色」插槽適用於這種「封鎖」的日子,但是當我在日曆上點擊另一天時,它也變成紅色。這裏有什麼問題?請幫忙! 非常感謝您的幫助!

+0

我的東西有一些問題的格式「日期」變量?嘗試控制檯以檢查其值。 –

回答

0

幾件事情:

  1. 月日期是從0開始的。這意味着myDate.setFullYear(2012,09,02)將日期設置爲2012年10月2日。我認爲您試圖將其設置爲09年2月 - 在這種情況下,您需要使用myDate.setFullYear(2012,08,02)
  2. 當你做new Date()它創建一個日期與當前的日期和時間。當你做date.setFullYear()它只會覆蓋日期 - 而不是時間。這可能會導致比較問題。我一直使用new Date(2012, 9, 2, 0, 0, 0, 0)來簡單這一點。
  3. 最後,我認爲這是什麼導致您的問題,==運算符不適用於日期。您將需要明確使用valueOf函數進行比較 - 如getTime()。有關更多詳細信息,請參閱this answer

我總結所有這些在搗鼓你 - http://jsfiddle.net/100thGear/sStbC/

讓我知道,如果這有助於!

+0

是的!謝謝!它工作得很好! 只有一個關於「紅色」插槽的問題。它適用於被封鎖的日子,如果您在日曆中的月份之間切換,它會繼續以其他日期的「紅色」工作......有沒有辦法在封鎖的日子中將其設爲「紅色」?再次感謝你的幫助! – Gregg

+0

這是因爲FullCalendar呈現的方式。不幸的是,更改視圖不會重新渲染日曆插槽 - 它只是重新排列當前視圖以適應新插槽。我建議使用'viewDisplay'回調代替'dayClick'來改變那個月的所有假期。這將允許您在月份更改時正確呈現您的假期。用戶通過這種方式知道,即使在他們點擊這一天之前,這是一個假期 - 我覺得這是最佳選擇。 – ganeshk

+0

謝謝!我將閱讀關於viewDisplay回調的文檔。 – Gregg