我想知道在用户选择一天或更改一个月/一年后,我每天可以运行一些代码(附加mouseenter事件)吗?
我试图在这些事件上附上活动
悬停时我想在同一行中突出显示第二天(如果存在)。
目前我将moouseenter / mouseleave事件附加到创建datepicker之后的所有日期(内联)。
我已经简化了我在JS小提琴中所做的事情。我需要在选择日期之后以及月/年之后更改这些事件。
JS小提琴:http://jsfiddle.net/MartinTale/Xx4GS/2/
$("div").datepicker({
changeMonth: true,
changeYear: true,
inline: true,
altField: "#datep"
});
$("tbody td:not(.ui-state-disabled, .active-calendar-cell)").mouseenter(function (e) {
$(this).closest('td').next().find("a").addClass("hover-calendar-cell");
console.log('test');
});
$("tbody td:not(.ui-state-disabled)").mouseleave(function (e) {
$("a.hover-calendar-cell").removeClass("hover-calendar-cell");
console.log('test out');
});
提前致谢。
答案 0 :(得分:14)
您可以使用提供的jQuery datepicker事件onSelect
和onChangeMonthYear
。
代码:
$("#datep").datepicker({
changeMonth: true,
changeYear: true,
onSelect: function () {
console.log('s');
},
onChangeMonthYear: function () {
console.log('o');
}
});
答案 1 :(得分:8)
这是hacky hack。
它有效,第二天会突出显示(在这种情况下是下一个td
)。
setTimeout是因为我认为jquery ui会破坏活动日期项,所以我们要等到我们有正确的日期项。
您可以使用onSelect
代替.change
,但不是什么大不了的事
我在那里留下了一个console.log,所以你可以看到一些事情。
答案 2 :(得分:1)
有一个名为" onSelect"将日期作为其参数。看这个例子:
$("#datePicker").datepicker({
//the format
dateFormat: "dd/mm/yy",
//called when date is selected
onSelect: function (date) {
alert(date);
}
});
Cou可以在api-doc中找到所有细节:http://api.jqueryui.com/datepicker/#option-onSelect