有没有办法将jQuery UI Datepicker的先前选定的日期设置为其他类?
我正在处理的场景是有一个包含即将发生的事件和之前事件的日历。即将发生的事件现在会将一个类应用于它们并进行相应的样式设置。我需要对之前有事件的日期做同样的事情。
例如:
5月10日将是彩色金色(高亮类),因为这是即将举行的活动。
5月8日会变成浅灰色(传递事件类),因为它是之前的事件。
这是我到目前为止(从beforeShowDay开始工作):
beforeShowDay: function(date) {
var result = [true, '', null],
afterOrToday = $.grep(events, function(event) {
var eventDate = new Date(event.Date),
todaysDate = new Date();
return date.valueOf() === eventDate.valueOf();
}),
beforeToday = $.grep(events, function(event) {
var eventDate = new Date(event.Date),
todaysDate = new Date();
return date.valueOf() < eventDate.valueOf();
});
if (afterOrToday.length)
result = [true, 'highlight', null];
else if (beforeToday.length)
result = [true, 'passed-event', null];
return result;
}
答案 0 :(得分:2)
答案 1 :(得分:1)
不确定这是否是最有效的方法,并且会喜欢改进质量的建议,但这是我提出的解决方案。
beforeShowDay: function(date) {
var result = [true, '', null],
today = $.grep(events, function(event) {
var eventDate = new Date(event.Date);
return date.valueOf() === eventDate.valueOf();
}),
beforeToday = $.grep(events, function(event, i) {
var eventDate = new Date(event.Date),
isPast = false;
if (date.valueOf() === eventDate.valueOf())
if (date.valueOf() < new Date().valueOf())
isPast = true;
return isPast;
});
if (today.length)
result = [true, 'highlight', null];
if (beforeToday.length)
result = [true, 'past-event', null];
return result;
}
这将在我过去的日期中添加一个类,其中包含两个单独的类中的事件和未来日期。感谢大家的帮助!