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: