carissimi ...
ho una domandina per gli esperti. Vi spiego la situazione:
ecco il codice semplificato del mio problema:
codice:
function Foo(id) {
var dom = document.getElementById(id);
function clickHandler() {
console.log("hello")
}
this.init = function() {
dom.addEventListener("click", clickHandler, false);
}
}
var o1 = new Foo("xxx");
o1.init();
delete(o1); // cancellazione dell'oggetto
var o2 = new Foo("xxx");
o2.init();
quando o1 viene deferenziato il listener sull'oggetto dom wrappato rimane!! infatti come vedete all'onclick esegue 2 log e non uno solo come mi aspettavo. Come si puo' fare a ripulire completamente un oggetto dom da eventi e ecc?
ho provato a usare:
codice:
dom.removeEventListener("click", clickHandler, false);
all'interno di init ma niente! il doppio log rimane