dayRender在给定日期没有正确地在fullcalendar中工作

时间:2017-08-15 17:22:35

标签: javascript jquery fullcalendar

我正在使用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");
    }
}

1 个答案:

答案 0 :(得分:0)

您没有正确使用$.inArray。它不会返回truefalse,您将使用它来解析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/