Entlistener () - api webes felületek, MDN

EventTarget.addEventListener () metódus regisztrál egy adott eseménykezelő okozott EventTarget.

Megjegyzés: eseményfigyelőket kapcsolódik az eseményhez célt; az esemény a cél fázisban, ahelyett, rögzítése és buborékoló fázisok. Események a cél fázisban indít az összes hallgatók egy eleme, függetlenül a useCapture paraméter.

Megjegyzés: useCapture lett választható csak az utóbbi változat a főbb böngészők; például nem volt kötelező megelőzően Firefox 6. Meg kell adnia ezt a paramétert legszélesebb körű kompatibilitást.

wantsUntrusted Ha az értéke igaz. a hallgató megkapja a generált eseményeket küldött egy oldalt (az alapértelmezés hamis króm és igaz a rendszeres weboldalakon). Ez a lehetőség csak a Gecko és főleg jól használhatók a addons és a böngésző is. Lásd kölcsönhatása kiemelt és nem kiemelt oldalak példákat.

Hozzáadása egy egyszerű hallgató

HTML tartalom

A fenti példában, modifyText () regisztrálja a esemény hallgató számára kattintással, segítségével addEventListener (). Kattintson bárhová az asztalon fogja emelni a felvezető és futtatni modifyText ().

Ha meg kell, hogy adja át a paramétereket a hallgató, akkor egy névtelen függvényt.

Eseményfigyelőket egy névtelen függvény

HTML tartalom

Miért használja addEventListener?

addEventListener - olyan módon, hogy regisztrálja az eseménykezelő, ahogy az a W3C DOM dokumentációt. Itt van egy lista előnye a felhasználásra:

  • Ez lehetővé teszi, hogy adjunk több kezelő is esemény. Ez különösen hasznos a DHTML könyvtárak vagy a Mozilla kiterjesztések. amely olyan körülmények között dolgoznak a használatát harmadik fél könyvtárak / kiterjesztéseket.
  • Ez biztosítja a pontos fázis kapcsolási vezérlés (hívás) a felvezető (fogás vagy emelkedés)
  • Váltott ki semmilyen DOM elem, nemcsak a HTML-elemeket.

Hozzáadása hallgató esemény feldolgozása során

Ha hozzáadjuk EventListener EventTarget események feldolgozása során, akkor nem okozott a jelenlegi tevékenységét, de el lehet indítani egy későbbi szakaszban a feldolgozás események felfelé irányuló feldolgozásra.

Több azonos eseményfigyelőkre

Ha több azonos EventListener regisztrált példány egyetlen EventTarget ugyanazokkal a paraméterekkel, ismétlődő hallgatók figyelmen kívül hagyni. Nem engedi EventListener'u nevezhető kétszer, és mivel ugyanaz a hallgatók figyelmen kívül hagyja, nem kell eltávolítani őket manuálisan removeEventListener módszerrel.

Ez az érték a kimeneti

Általában kívánatos, hogy át elemet, amelyen a terhelés eseménykezelő, például a generalizált rakodók hasonló elemek. Ha hozzá egy funkciót addEventListener () E változó értéke megváltozik - vegye figyelembe, hogy ez az érték át a függvényeknek a hívó fél.

A fenti példában az értéke ennek a változónak belül modifyText () hívás egy click esemény, amikor egyenlő a táblázatban a „t”. Ez az ellenkezője annak, akkor jelentkezik, ha a felvezető hozzáadjuk a HTML-kódban:

Ennek értéke változó belül modifyText () hívás egy kattintással esemény egyenlő a globális kapcsolat (ablak) tárgyat (vagy meghatározatlan segítségével szigorúan mód)

Példa kötődnek és anélkül:

A probléma a fenti példában, hogy nem tudja eltávolítani a hallgató okozott bind. A másik megoldás egy speciális handleEvent funkció, hogy elkapjam mindenképpen:

Legacy Internet Explorer és attachEvent

Az Internet Explorer 9 év alatti változata, akkor ahelyett, hogy a szokásos attachEvent addEventListener. Támogatása IE, a fenti példában is a következőképpen kell módosítani:

A attachEvent van egy hátránya: ez utal a tárgy ablakban helyett az elem, amelyre hívták.

kompatibilitás

Akkor megkerülni a módszerek a addEventListener. removeEventListener. Event.preventDefault és Event.stopPropagation támogatott IE 8 a következő kódot a script nachaleVashego. Ez a kód már támogatja a használatát handleEvent és események DOMContentLoaded.

A régi módon a regisztráció eseménykezelőkkel

addEventListener () adtunk hozzá 2 Események DOM specifikáció. Ezt megelőzően, a diákok egészül ki:

Ez a módszer felváltja a jelenlegi esemény hallgató kattintással. ha léteznek. Ugyanez vonatkozik az egyéb kapcsolódó eseményeket, és rakodók, mint blur (onblur) gombnyomás (onkeypress), és így tovább.

Mivel ez volt lényegében része DOM 0, akkor ez a módszer széles körű podderzhkui nem igényel speciális cross-böngésző kódja; Ezért gyakran használnak hozzá hallgatók dinamikusan ha nem akarja, fejlett funkciók addEventListener ().

kérdések memória

Az első esetben egy új, (névtelen) függvény jön létre minden ciklusban lépésben. A második esetben, egy pre-függvény deklaráció alkalmazunk eseménykezelő. Ebből következik a kisebb memóriát. Sőt, az első esetben, mivel a referenciák hiánya a névtelen függvények, akkor nem hívja element.removeEventListener. mert nincs utalás a kezelőt az időben, mint abban az esetben, Stora okozhat myElement.removeEventListener ( „click”, processEvent, false).

kompatibilitás

Megjegyzések Gecko

  • Mielőtt Firefox 6, a böngésző dobni egy kivételt, ha a useCapture paraméter nem egyezik meg pontosan hamis. Előtt Gecko 9,0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6), addEventListener () fog dobni egy kivételt, ha a hallgató paraméter volt egyenlő null; Most az eljárás befejeződött hiba nélkül, de nem csinál semmit.

Megjegyzések a WebKit

Lásd még:

leírás

papírcímkék és a résztvevők

Köszönjük! Kérjük, ellenőrizze a mappát „Beérkezett üzenetek”, hogy erősítse meg az előfizetést.

Ha korábban nem erősítette meg az előfizetés a hírlevél a Mozilla, akkor meg kell csinálni. Kérjük, ellenőrizze a postaládájába, vagy spam a postafiók látni, hogy ez nem volt egy levél tőlünk.

Elrejtése a hírlevelet

Miért MDN másképp néz ki?

MDN változik, mely kizárólag a dokumentációt webes technológiákat. Mindegy nagy tartalmat, hogy itt maradjon; mi változás csak a vizuális elemek és a navigációs segítségével gyorsan megtalálja a dokumentációt az internetes technológiát.

De ne aggódj, MDN és a Mozilla még mindig együtt. Sőt, mi frissíteni csak a design MDN többször, hogy megfeleljenek az új logó és színek Mozilla.

Bővebben az újratervezés a poszt a blogunkon. Köszönjük, hogy a MDN!

Hide üzenetet az újratervezés