我在我的应用中使用jquery ui datepicker。 我创建了一个内联日期选择器。 我遇到onChangeMonthYear的问题。我把这个例子简化为最低限度。
点击“prev”或“next”,日历应该: -
问题在于#2。
我正在使用setDate来做到这一点,它最终会以无限递归结束。因为,我在onChangeMonthYear中调用setDate。并且setDate也会在内部触发onChangeMonthYear。
如果点击上一个/下一个,我怎样才能实现这三件事。
答案 0 :(得分:7)
尝试设置一个可以在事件处理程序中查询的标志,以防止无限循环:
var changingDate = false;
$('.selector').datepicker({
onChangeMonthYear: function(year, month, inst) {
if (changingDate) {
return;
}
changingDate = true;
// your setDate() call here
changingDate = false;
}
});
答案 1 :(得分:1)
无限递归意味着您通知错误的月份
确保从month
答案 2 :(得分:0)
onChangeMonthYear: function(year, month, inst){
$(this).datepicker( "setDate", new Date(year, month-1, 1) );
}