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"); });