Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQueryUI日期选择器小部件添加';一旦关闭';小部件初始化后的函数_Jquery_Jquery Ui_Datepicker - Fatal编程技术网

jQueryUI日期选择器小部件添加';一旦关闭';小部件初始化后的函数

jQueryUI日期选择器小部件添加';一旦关闭';小部件初始化后的函数,jquery,jquery-ui,datepicker,Jquery,Jquery Ui,Datepicker,假设我有一个日期字段。首先,我使用一些选项对其进行初始化(它们目前并不重要): 然后,如果我尝试添加onClose函数,我将执行以下操作: $('#date').datepicker({onClose: function(dateText, inst){console.log("Hello World");}}); 但是,这会覆盖之前设置的选项。假设我没有访问这些选项的权限-datepicker已初始化,选项已设置,现在我需要添加函数onClose。怎么做?我尝试了.datepicker('o

假设我有一个日期字段。首先,我使用一些选项对其进行初始化(它们目前并不重要):

然后,如果我尝试添加
onClose
函数,我将执行以下操作:

$('#date').datepicker({onClose: function(dateText, inst){console.log("Hello World");}});
但是,这会覆盖之前设置的选项。假设我没有访问这些选项的权限-datepicker已初始化,选项已设置,现在我需要添加函数
onClose
。怎么做?我尝试了
.datepicker('option','onClose',function(){})无效。

按原样尝试

$('#date').datepicker( 'option' , 'onClose', function() {} );
试试这个:

$('#date').datepicker().bind('onClose',function(){
    console.log("Hello World");
});
试试这个:

$('#date').datepicker();
...
$('#date').datepicker("option", {
  onClose: function(dateText, inst){console.log("Hello World");}
});
当然,这将覆盖之前设置的onClose函数。
来源:

在初始化中,将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"); });

您应该只对id初始化一次日期选择器。如果执行多次,后者将覆盖第一个选项。是这样吗?是的。这就是为什么我需要另一种方法来添加“onClose”函数。实际上,这是最接近的解决方案。我修改了我的选项,这样它们就可以触发事件,比如:
onClose:function(dateText,inst){$(this).trigger(“date_closed”,“dateText,inst]}
,然后我可以在任何地方使用这个触发器:
$('#date')。on('date_closed',function(dateText,inst){})
不太整洁,但满足了我的需要:)可能它被否决了,因为datepicker具有用于此用例的数据。不是在初始化期间:OP希望在初始化之后执行此操作(例如使用)。
 addCloseFunctionToDatePicker('myDatePicker', function(){ alert("I'm next method"); });