我使用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>
答案 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;