Töröl egy névtelen eseményfigyelőt a javascript, a szomatikus blogban
Névtelen eseménykezelő
Globális funkció
Gyakran szeretném törölni az eseménykezelőt közvetlenül az esemény bekövetkezése után. Sokkal könnyebb, ha az eseménykezelő nem névtelen, hanem egy globális funkció helyett kell meghatározni:
Ebben a példában egy eseményhallgató törlése elég egyszerű, de az eseményfigyelő létrehozásának ilyen módja hátrányokkal jár. Annak érdekében, hogy a kattintáskezelő hozzáférhessen az üzenetváltozóhoz, be kell jelentenünk a változót a globális hatókörben. És ez technikai szempontból nem olyan nagyszerű.
Térjünk vissza az első JS példánkra, amely semmi gond. Ebben a példában az események hallgatója névtelen funkció. Annak érdekében, hogy eltávolítsuk az ilyen eseménykezelőt, a kezelőn belül, hivatkozni kell erre a funkcióra. Ehhez a változó argumentumokat használjuk. amely minden funkciónál automatikusan lehetséges. Ez nemcsak a függvényre adott érveket tartalmazza, hanem a függvényre való utalást is: arguments.callee. Ezt a hivatkozást használhatjuk egy névtelen eseménykezelő eltávolítására is, miután meghívták.
Névtelen hallgató törlése
Itt van az első mintakód egy további sorral egy névtelen eseményhallgató eltávolításához.
A kód az esemény típusa és az e.eventPhase mint események fázist használó e.type típust használja.
A változó arguments.callee nagyon hasznos ilyen esetekben.
Ezek a rosszul dokumentált tulajdonságok könnyen használhatóak. Tegye be őket az arzenálba.
Olvassa el ugyanezt a cikket a témában: