Jest to prosty widżet makiety:Dostęp widget instancji z zewnątrz widget
(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));
Dodaje jedyną metodą ukrycia, że można zadzwonić, aby ukryć element. Łatwe, jeśli odbywa się od wewnątrz widget
this.hide();
Ale wspólny scenariusz jest to, że chcesz wywołać metody na widżet przykład z zewnątrz (aktualizacji Ajax i innych zdarzeń zewnętrznych)
Więc co jest najlepszym sposobem dostępu do instancji widgetu? Jednym ze sposobów jest dodanie odniesienia do widgetu do elementu, brzydkie ...
_create: function() {
this.element[0].widget = this;
},
Następnie można uzyskać do niego dostęp z zewnątrz robi
this.dummy = $("#dummy").myDummyWidget();
this.dummy[0].widget.hide();
Dzięki! dane nie były zbyt dobre: D Ale działa, to jest ważna część: P – Anders
btw, jeśli lubisz mnie nie lubić ciągów lub korzystasz z Resharpera i VS2010, możesz to zrobić .data(). myDummyWidget; i korzystać z intelisencji i kompilować ostrzeżenia. – Anders
Oto oficjalne odniesienie: https://api.jqueryui.com/jquery.widget/ (sekcja "Instance") – noitseuq