function bubble(content, triggerElm){
this.element = $('<div class="bubble" />').html(content);
this.element.css(.....) // here is positioned based on triggerElm
}
bubble.prototype.show = function(){
$(document).on('click', this._click.bind(this));
this.element.css(....)
};
bubble.prototype.hide = function(){
$(document).off('click', this._click.bind(this));
this.element.css(....)
};
bubble.prototype._click = function(event){
console.log('click', this);
if(this.element.is(event.target) || (this.element.has(event.target).length > 0))
return true;
this.hide();
};
var b = new bubble();
b.show();
b.hide();
Continuo a vedere clic nella console, quindi il clic non si slega. Ma se rimuovo la chiamata bind() il clic non è bloccato. Qualcuno sa perché? Ho bisogno di un modo per essere in grado di cambiare "questo" dentro la mia funzione di test, è per questo che sto usando bind()jQuery off() non si scioglie gli eventi quando si utilizza bind
ma non riesco ad accedere a "questo" istanza all'interno del clic – Elfy
@Elfy Sì, è vero. A cosa ti serve? – JLRishe
Bene, ho bisogno di essere in grado di dire se il clic era al di fuori dell'elemento bolla, e questo è parte dell'istanza. Fondamentalmente all'interno della funzione click Im controllo se e.target è this.element o al suo interno – Elfy