jQuery UI Datepicker beforeShowDay函数无法运行

时间:2016-10-12 15:35:42

标签: javascript jquery user-interface datepicker

我使用jQuery的datepicker作为日历,我试图使用函数'beforeShowDay'突出显示日历中的某个日期,但该函数甚至没有被触发。

的JavaScript

        jQuery(document).ready(function() {
            // An array of dates
            var eventDates = [new Date(2016, 9, 7),new Date(2016, 9, 8)];
            console.log(('#calendar'.beforeShowDay));
            console.log(eventDates);
            // datepicker
            $('#calendar').datepicker({
                dateFormat: 'yy-mm-dd',
                beforeShowDay: function(date) {
                    var highlight = eventDates[date];
                    console.log(highlight);
                    if(highlight) {
                        return [true, "calendarHighlight", ''];
                    } else {
                        return [true, '', ''];
                    }
                }
            });
        });

CSS

.calendarHighlight {
            background-color: red; !important;
        }

HTML

<div id="calendar"></div>

1 个答案:

答案 0 :(得分:0)

您的问题是您将值存储在数组中,但尝试像对象一样访问它

阵列

var eventDates = [new Date(2016, 9, 7),new Date(2016, 9, 8)];

这不起作用

var highlight = eventDates[date];

您还应该使用.getTime()

比较日期

所以

var eventDates = [new Date(2016, 9, 7).getTime(),new Date(2016, 9, 8).getTime()];

然后使用jQuery.inArray

检查它是否在数组中
var highlight = $.inArray(date.getTime(),eventDates) >= 0;

FIDDLE