DatePicker 有一个内部函数 _adjustDate()
,我想在其后添加一个回调。
当前方法
<小时/>这就是我目前正在做的事情。基本上,只需将函数定义替换为函数本身,再加上新的操作。这会影响所有日期选择器,我也不确定是否需要。
$(function(){
var old = $.datepicker._adjustdate;
$.datepicker._adjustDate = function(){
old.apply(this, arguments);
// custom callback here
console.log('callback');
};
});
_adjustDate 是在下个月/上个月点击期间调用的日期。该函数采用三个参数。我很好奇是否有更好的方法来添加回调。
预期结果
<小时/>我希望最终结果是这样的;其中 afterAjustDate
是回调句柄:
$('#datepicker').datepicker({
showButtonPanel: true
, afterAdjustDate: function(){ $(this).find('foo').addClass('bar'); }
});
仅供引用
<小时/>onChangeMonthYear
不是可接受的事件替代方案,live()
/delegate()
也不是可接受的事件替代方案(在 IE 中不起作用)绑定(bind)选项。
这是因为需要在选择月份后应用类/操作元素。更改月份会重新创建日历中的元素;当执行此操作时,jQueryUI 不够智能,无法继承类更改。因此,我需要在更改日期后进行回调。
最佳答案
有一个onSelect 选项,可用于将回调函数传递给日期选择器。听起来这可能是满足您需求的内置解决方案。
$('.datepicker').datepicker({
onSelect: function(selectedDate) {
// custom callback logic here
alert(selectedDate);
}
});
关于javascript - 向 jQuery DatePicker 添加回调的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101287/