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