javascript - 向 jQuery DatePicker 添加回调的正确方法

标签 javascript jquery jquery-ui jquery-callback jquery-ui-datepicker

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/

相关文章:

javascript - node.js 从 html 输入值

JavaScript 用正则表达式替换正则表达式

javascript - 如何复制行并将选定的行粘贴到同一个表中

javascript - 如何从具有元素 "return"的 JSON 中获取值

javascript - 禁用按钮设置 onclick

jQuery UI : DatePicker, 仅选择今天到过去的日期

jquery - 创建 jQueryUI 1.8 按钮菜单

javascript - CSS:如何从 Javascript 变量设置以中间为原点的元素位置?

相当于此 jQuery 代码的 JavaScript

javascript - AJAX:form.serialize() 和 csrf token 在一起?