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");
2 行目は、既存のボタンにオプションを設定するのではなく、新しいボタンを作成します。これを修正する方法がわかりません。
では、 Liskov Substitution Principleに従うサブクラス化されたウィジェットを作成する方法はありますか?