В 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");
Вторая строка, вместо установки опции для существующей кнопки, создает новую. Я не знаю, как это исправить.
Итак, есть ли способ создать виджет подкласса, который следует принципу замены Лискова ?