Javascript, problem z dodajanjem event listenerjev
2 naročnika
2 naročnika
Kot vse kaze, sem prejsnjo sredo slabo poslusal predavanje v Kiberpipi :)
Problem je sledec. Uporabljam nek javascript objekt, ki ob klicu neke metode doda event listener (ali attacha event, v primeru IE) nekemu elementu v DOM, v mojem primeru je to element BODY. Zelim, da se ob eventu klice metoda tega istega objekta.
To sem zelel narediti nekako takole:
document.body.addEventListener('click', this.hide, false);
Vse lepo in prav, metoda hide se ob kliku na BODY sicer izvede, vendar ne metoda na zeljeni instanci objekta, torej tisti, v kateri sem ta event listener dodal, ampak se ocitno kreira neka nova instanca, ali pa se metoda izvede nad instanco funkcije, ki doloca objekt, ali pa se kaj tretjega?
Vprasanje bi bilo, kako bi dosegel, da se ob eventu izvede metoda nad to isto instanco objekta?
13 odgovorov
Ja, tole, kar ti uporabljas, resuje en drug problem z this, cesar jaz sicer trenutno ne potrebujem, bom pa vedel, kako zadevo resit, ce naletim na ta problem v prihodnosti, hvala :)
glede tvojega prvega problema:
z var obj si skreiral lokalno referenco, ki jo vidi tudi anonimna funkcija, pripeta na event. V bistvu je to bolj elegantna verzija moje rešitve, ki je v takem primeru po nepotrebnem zakomplicirana. Vsaj zaenkrat mi tako zgleda :).