jQuery UI 1.8 添加了使用如下代码扩展小部件的功能:
$.widget("my.weirdbutton", $.ui.button, {
});
现在我可以创建一个weirdbutton
,它的工作原理很像一个按钮:
$("#myButton").weirdbutton();
然而,只有奇怪的按钮事件被触发。所以如果我有类似的东西
$(".button").bind("buttoncreate", function() {
console.log("a button was created");
});
我会想念所有奇怪按钮的创造。这可以通过从怪异按钮小部件手动触发按钮事件来解决。不是很好,但有效。
更大的问题是这样的代码不起作用:
$("#mybutton").weirdbutton();
$("#mybutton").button("option", "text", "My New Text");
第二行不是在现有按钮上设置选项,而是创建一个新按钮。我不知道如何解决这个问题。
那么,有没有办法制作一个遵循Liskov 替换原则的子类小部件?