我正在使用fullcalendar进行日间活动预订。我想根据给定的日期进行一些颜色更改。但是它会在整个日历中呈现颜色。它使所有单元格变为绿色。 这是代码,
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");
}
}
答案 0 :(得分:0)
您没有正确使用$.inArray
。它不会返回true
或false
,您将使用它来解析if
语句。相反,它返回一个整数,表示首次找到匹配值的索引。如果找不到匹配项,则返回-1。
您的问题正在发生,因为JavaScript将0
宽松地等于false
(即0 == false
,但是0 !== false
),并且所有其他数字宽松地等于{{ 1}}。因此,如果true
返回除$.inArray
以外的任何内容(即返回0与第一个数组索引中的值匹配),则0
语句将被视为已返回{{1然后改变背景颜色。这就是除了2017-08-17之外它为所有人改变的原因。
此版本将正常工作,测试索引返回是>设置背景颜色前为-1(整数,而不是bool):
if
有关更详细的说明,请参阅https://api.jquery.com/jQuery.inArray/。