我发现了这个datepicker事件,但没有在IE上工作。我不知道这段代码有什么问题。
var Event = function(text, className) {
this.text = text;
this.className = className;
};
var events = {};
events[new Date("18/Jan/2013")] = new Event("Drinks @ Seymours - Alumni Event", "Yes");
events[new Date("16/Jan/2013")] = new Event("Retired Staff Luncheon", "Yes");
events[new Date("13/Jan2013")] = new Event("October Spring Lunch - Alumni Event", "Yes");
$("#dates").datepicker({
dateFormat: 'dd/M/yy',
firstDay: 1,
showOtherMonths: true,
onSelect: function(date) {
$('#CAT_Custom_241423').val(date);
$('#submit-btn-webapp').trigger('click');
},
beforeShowDay: addClass
});
function addClass(date) {
var event=events[date];
if(event){
return[true,event.className,event.text];
}
else {
return[true,'',''];
}
}
谷歌浏览器ff正常运行。 这是jsfiddle上的工作代码
答案 0 :(得分:0)
问题是事件键(生成的日期)。如果您在IE中尝试以下内容:
alert(new Date("18/Jan/2013"));
您将收到错误(无效日期)。所以你永远不会在你的功能中获得匹配。像这样定义键(或类似于此):
events[(new Date(2013, 0, 18, 0, 0, 0))] = new Event(....)
// format in this case is:
// new Date(year,month,day,hour,minute,second)
// month starts with 0.
它有效。在这种情况下,您不必设置小时,分钟和秒。您只需确保生成的密钥是有效日期,并匹配来自datepicker的日期。
顺便说一下,我会将你的“Event”对象重命名为不同的东西,因为已经有一个window.event有点令人困惑。