Questo è un widget semplice finto:Accesso widget di esempio da widget di fuori
(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));
ma aggiunge solo una pelle metodo che è possibile chiamare per nascondere l'elemento. Facile se fatto all'interno widget di
this.hide();
Ma uno scenario comune è che si desidera chiamare metodi su un'istanza widget di dall'esterno (aggiornamento Ajax, o altri eventi esterni)
Allora, qual è il modo migliore di accedere all'istanza del widget? Un modo è quello di aggiungere il riferimento al widget all'elemento, brutto ...
_create: function() {
this.element[0].widget = this;
},
Quindi è possibile accedervi dall'esterno fare
this.dummy = $("#dummy").myDummyWidget();
this.dummy[0].widget.hide();
Grazie! i dati non erano un buon nome: D Ma funziona, questa è la parte importante: P – Anders
btw, se ti piaccio non mi piacciono le stringhe o usi Resharper e VS2010 puoi fare .data(). myDummyWidget; e trarre vantaggio dall'intelisence e dagli avvisi di compilazione. – Anders
Ecco il riferimento ufficiale: https://api.jqueryui.com/jquery.widget/ (sezione "Istanza") – noitseuq