gpt4 book ai didi

javascript - 通过重新定义父方法在 Jquery UI 中扩展小部件

转载 作者:行者123 更新时间:2023-12-02 06:07:30 26 4
gpt4 key购买 nike

我尝试根据 documentation 扩展 UI 对话框(用户界面版本 1.8.16):

(function($) {
$.widget('ui.mydialog', $.extend(true, $.ui.dialog.prototype, {
_create: function() {
return $.Widget.prototype._create.apply(this, arguments);
}
}));
})(jQuery);

$(function() {
$('div#dialog').mydialog();
});

执行此代码会导致 JS 错误:“this.uiDialog is undefined”。

如果尝试覆盖 _init() 方法没有错误,但父方法调用无效。

我很困惑.. 哪种扩展方式是合法的,例如放置一些自定义初始化代码?

最佳答案

我认为这篇文章可以解决您的问题:Inherit from jQuery UI dialog and call overridden method .

简而言之,如果你想构建一个继承jQuery UI Dialog的widget,你可以这样做:

(function($) {
$.widget("ui.mydialog", $.ui.dialog, {
_create: function() {
$.ui.dialog.prototype._create.call(this);
}
});

})(jQuery);

实际操作:http://jsfiddle.net/william/RELxP/ .


本教程将为您启迪:http://wiki.jqueryui.com/w/page/12138135/Widget%20factory .简而言之,$.Widget 是基础小部件对象。尽管它有一个 _create 函数,但默认情况下它什么都不做,将初始化代码留给子类。看看这个更新的例子:http://jsfiddle.net/william/RELxP/1 .

关于javascript - 通过重新定义父方法在 Jquery UI 中扩展小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com