jQueryUI 日期选择器小部件在小部件初始化后添加"onClose"函数



假设我有一个#日期字段。起初,我用一些选项初始化它(目前它们并不重要(:

$('#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"); });

最新更新