Это простой макет виджетов:
(function ($) {
$.widget("ui.myDummyWidget", {
options: {
},
_create: function () {
},
hide: function () {
this.element.hide();
},
_setOption: function (key, value) {
$.Widget.prototype._setOption.apply(this, arguments);
},
destroy: function () {
$.Widget.prototype.destroy.call(this);
}
});
} (jQuery));
Он только добавляет метод hide, который вы можете вызвать, чтобы скрыть элемент. Легко, если сделано из виджета
this.hide();
Но распространенным сценарием является то, что вы хотите вызывать методы в экземпляре виджета извне (обновление Ajax или другие внешние события)
Итак, каков наилучший способ доступа к экземпляру виджета? Один из способов - добавить ссылку на виджет на элемент, уродливый...
_create: function () {
this.element[0].widget = this;
},
Затем вы можете получить доступ к нему со стороны, делая
this.dummy = $("#dummy").myDummyWidget();
this.dummy[0].widget.hide();