Estoy tratando de escribir un widget jQuery siguiendo el modelo dado here. Aquí es una instantánea del widget:Cómo manejar eventos en los widgets de la interfaz de usuario de jQuery
(function ($) {
$.widget("ui.notification", {
_create: function() {
if (!this.element.hasClass("ntfn")) {
this.element.addClass("ntfn");
}
this.elTitle = this.element.append("<div class='ntfn-title'>Notifications</div>");
this.elTitle.click(this._titleClick)
},
_titleClick: function() {
console.log(this);
}
});
})(jQuery);
Aquí el problema es con el alcance de "this" dentro del método _titleClick
, dentro del método esto apunta al elemento de title
. Pero necesito señalar el elemento widget
.
Creo que una forma de hacerlo será utilizar una clase contenedora como
var that = this;
this.elTitle.click(function() {
that._titleClick.apply(that, arguments);
});
Es esta la mejor manera de resolver este problema o hay algún patrón general para resolver este problema?
Gracias. Esto es exactamente lo que estaba buscando. – jwanga