当用户在Fullcalendar 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。这意味着
myDate.setFullYear(2012,09,02)
将日期设置为2012年10月2日。我想你试图将其设置为9月2日,在这种情况下,你需要使用myDate.setFullYear(2012,08,02)
- 当您执行
new Date()
时,它会创建一个具有当前日期和时间的日期。当你做date.setFullYear()
时,它只会覆盖日期,而不是时间。这可能会导致比较问题。我一直使用new Date(2012, 9, 2, 0, 0, 0, 0)
来简化这一点 - 最后,我认为这就是导致您的问题的原因,
==
运算符不适用于日期。您需要显式地使用valueOf
函数来进行类似getTime()
的比较。有关更多详细信息,请参阅此答案
我为你总结了所有这些——http://jsfiddle.net/100thGear/sStbC/
如果这有帮助,请告诉我!