假设我有一个#日期字段。起初,我用一些选项初始化它(目前它们并不重要(:
$('#date').datepicker(options);
然后,如果我尝试添加onClose
功能,我会这样做:
$('#date').datepicker({onClose: function(dateText, inst){console.log("Hello World");}});
然而,这会覆盖之前设置的选项。假设我无法访问这些选项——日期选择器已初始化,选项已设置,现在我需要添加函数onClose
。如何做到这一点?我试过.datepicker('option','onClose',function(){});
,但没有效果。
将其作为进行尝试
$('#date').datepicker( 'option' , 'onClose', function() {} );
试试这个:
$('#date').datepicker();
...
$('#date').datepicker("option", {
onClose: function(dateText, inst){console.log("Hello World");}
});
当然,这会覆盖您之前设置的onClose函数。来源:jQuery论坛发布
试试这个:
$('#date').datepicker().bind('onClose',function(){
console.log("Hello World");
});
在初始化中,将on-close函数定义为选项之一。这对我有用。
$('#date').datepicker({
dateFormat: "dd/mm/yy",
onClose: function(dateText, inst){console.log("Hello World");}
});
我也面临着旧的关闭函数被替换的同样问题。经过大量搜索,我已经实现了自己的功能来处理这个问题。以下是的代码片段
function addCloseFunctionToDatePicker(id, funHandler) {
var $datePicker=$('#' + id);
var prevhandler = $datePicker.datepicker('option', 'onClose');
$datePicker.datepicker('option', {
onClose: function (dateText, inst) {
if (prevhandler) {
prevhandler(dateText, inst);
}
funHandler(dateText, inst);
}
});
}
调用机制:
addCloseFunctionToDatePicker('myDatePicker', function(){ alert("I'm next method"); });