我已经开始发布必须禁用的日子转移到第二天。
我们的想法是在日历上禁用我们的booking
对象中不存在或值小于1的那一天。
这是我在jsfiddle上的脚本和演示的简化版本:
var bookings = {
"2012-09-01": 24,
"2012-09-03": 31,
"2012-09-05": 27,
"2012-09-06": 9,
"2012-09-07": 18,
"2012-09-08": 0,
"2012-09-10": 20,
"2012-09-12": 19,
"2012-09-13": 0,
"2012-09-14": 9,
"2012-09-15": 24,
"2012-09-17": 19,
"2012-09-19": 28,
"2012-09-20": 15,
"2012-09-21": 12,
"2012-09-22": 25,
"2012-09-24": 19,
"2012-09-26": 0,
"2012-09-27": 0,
"2012-09-28": 0,
"2012-09-29": 0
};
function MyEvent(date)
{
bookings = bookings || {};
this.date = date.toISOString().substr(0, 10);
this.display = (typeof bookings[this.date] == 'number' && bookings[this.date] > 0);
return this;
}
MyEvent.prototype.toArray = function () {
return [this.display, null, null];
};
$(function ()
{
$('#eventCalendar').datepicker({
dateFormat: "yy-mm-dd",
firstDay: 1,
defaultDate: "2012-09-24",
beforeShowDay: function (date)
{
return new MyEvent(date).toArray();
}
}
);
});
有人可以告诉我,我做错了什么,或者这是一个错误?
答案 0 :(得分:1)
这有点挣扎,但不是一个错误。 使用时出现问题:
date.toISOString()
操作可以从插件传递的原始日期返回不同的日期(例如第二天),因为该函数忽略了时区偏移
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toISOString
所以你的病情不会很好。
这是一个不使用该功能的工作小提琴:http://jsfiddle.net/nBejK/2/