day渲染在给定日期的全日历中无法正常工作



我正在使用完整日历进行日间活动预订。我想根据给定的日期进行某一天的颜色更改。但它在整个日历中呈现颜色。它使所有单元格变绿。 这是代码,

dayRender: function (date, cell) {
var disabledDates = ["2017-08-17","2017-08-23"];
if ($.inArray(date.format("YYYY-MM-DD"),disabledDates)) {
//alert("success");
cell.css("background-color", "green");
}
}

您没有正确使用$.inArray。它不返回truefalse,您将使用这些if语句。相反,它返回一个整数,表示它首先找到匹配值的索引。如果未找到匹配项,则返回 -1。

出现您的问题是因为 JavaScript 将0视为松散地等于false(即0 == false,但0 !== false(,以及所有其他数字松散地等于true。因此,如果$.inArray返回除0以外的任何内容(即在与第一个数组索引中的值匹配的地方返回 0(,您的if语句将被视为返回了true,从而更改背景颜色。这就是为什么它为除 2017-08-17 之外的所有内容更改它的原因。

此版本将正常工作,在设置背景颜色之前测试索引返回值是否> -1(整数,而不是布尔值(:

dayRender: function(date, cell) {
var disabledDates = ["2017-08-17", "2017-08-23"];
if ($.inArray(date.format("YYYY-MM-DD"), disabledDates) > -1) {
console.log(date.format("YYYY-MM-DD"));
cell.css("background-color", "green");
}
}

有关更详细的说明,请参阅 https://api.jquery.com/jQuery.inArray/。

相关内容

  • 没有找到相关文章

最新更新