Jquery ui 如何子类化小部件
jQuery UI 1.8添加了使用如下代码扩展小部件的功能:Jquery ui 如何子类化小部件,jquery-ui,jquery-ui-widget,Jquery Ui,Jquery Ui Widget,jQuery UI 1.8添加了使用如下代码扩展小部件的功能: $.widget("my.weirdbutton", $.ui.button, { }); 现在我可以创建一个weirdbutton,它的工作原理很像一个按钮: $("#myButton").weirdbutton(); 但是,只有古怪的按钮事件才会被触发。所以如果我有 $(".button").bind("buttoncreate", function() { console.log("a button was cr
$.widget("my.weirdbutton", $.ui.button, {
});
现在我可以创建一个weirdbutton
,它的工作原理很像一个按钮:
$("#myButton").weirdbutton();
但是,只有古怪的按钮事件才会被触发。所以如果我有
$(".button").bind("buttoncreate", function() {
console.log("a button was created");
});
我会怀念所有古怪按钮的创作。这可以通过从weirdbutton小部件手动触发按钮事件来修复。不太好,但很管用
更大的问题是这样的代码无法工作:
$("#mybutton").weirdbutton();
$("#mybutton").button("option", "text", "My New Text");
第二行不是在现有按钮上设置选项,而是创建一个新按钮。我不知道怎么解决这个问题
那么,有没有一种方法可以使子类小部件遵循
方法?我不知道。bind
方法可以使用这种方法替换初始的\u create
方法:
$.widget("my.weirdbutton", $.ui.button, {
_create: function() {
$.ui.button.prototype._create.call(this);
console.log("a button was created");
}
});
然后,如果您执行(at文档):
你应该得到一个控制台。log
这里的完整代码:问题在于
console.log
是由我的插件的用户调用的,而不是我。我不知道他们真正想要做什么(登录只是一个例子),我也无法将其硬编码到小部件代码中。感谢ant1j,我不知道如何调用高级类的原始create方法!如果是这样的话,别忘了将你的问题标记为“已回答”!
$(function() {
$("#myButton").weirdbutton();
});