javascript - 如何子类化特定的 jqueryui 小部件方法?

标签 javascript jquery jquery-ui subclassing jquery-ui-datepicker

自从我将 jQueryUI 更新到 1.8 以来,我在实现中发现了一些问题,如果我能找到如何子类化 datepicker 小部件的特定方法,我可以自己修复它,而无需等待修复完成,所以我调用父代码,然后执行我的代码。

我正在阅读 $.widget,但我就是无法理解它是如何工作的。

我尝试过这样的事情:

$.widget("ui.datepicker", {
  _showDatepicker: function(input) {
   alert('Yo');
   $.datepicker.prototype._showDatepicker.apply(this,arguments);
   alert('Hey!');
  }
 });

以及各种其他变体,我开始认为我只是不理解 jQueryUI 的“可扩展性”,或者它根本无法完成。

有人知道我怎样才能实现这个目标吗?

谢谢

最佳答案

1.8 中的日期选择器不使用小部件工厂。其他小部件可以,但日期选择器尚未重构为使用小部件工厂,这将在更高版本的 jQuery UI 中发生。

您可以对日期选择器执行类似的操作:

var old_showDatepicker = $.datepicker._showDatepicker;
$.datepicker._showDatepicker = function(input){
    console.log('hello');
    old_showDatepicker.apply(this,arguments);
    console.log('goodbye');
}

这是 slider :

$.widget("my.slider", $.ui.slider, {
    _value: function(input) {
        console.log('Yo');
        $.ui.slider.prototype.value.apply(this,arguments);
        console.log('Hey!');
    }
});

关于javascript - 如何子类化特定的 jqueryui 小部件方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2526592/

相关文章:

javascript - jQuery 简单按钮绑定(bind)

jquery - 如何显示来自 jQuery 的日期而不是显示当前日期?

javascript - jquery中循环复选框不等于0

javascript - 使用 es6 模块创建自定义 "event listener"

asp.net - jQuery 与 ASP.NET Ajax

JQuery Slide切换显示类型

javascript - 扩展 jQuery UI 方法

javascript - Chrome DevTools 如何衡量交互响应?

javascript - TypeError : uri. indexOf 不是函数

javascript - 使用 lodash 对 Json/XML 集合进行分组