JavaScript HTML DOM händelselyssnare
- Föregående sida DOM-händelser
- Nästa sida DOM-navigering
addEventListener() metoden
Exempel
Lägg till en händelselyssnare som aktiveras när användaren klickar på knappen:
document.getElementById("myBtn").addEventListener("click", displayDate);
addEventListener()
Metoden tilldelar en händelsesökare till ett specifikt element.
addEventListener()
Metoden lägger till händelsesökare till ett element utan att överskriva befintliga.
Du kan lägga till flera händelsesökare till ett element.
Du kan lägga till flera händelselyssnare av samma typ till ett element, till exempel två "click"-händelser.
Du kan lägga till händelselyssnare till vilket DOM-objekt som helst, inte bara HTML-element, till exempel fönsterobjekt.
addEventListener()
metoden gör det lättare att kontrollera hur händelser reagerar på spjällning.
När du använder addEventListener()
metoden när JavaScript och HTML-markering är åtskilda, vilket ger bättre läsbarhet; det är möjligt att lägga till händelselyssnare även om HTML-markeringen inte kontrolleras.
Du kan använda removeEventListener()
Metoden gör det enkelt att ta bort händelselyssnare.
Syntaks
element.addEventListener(event, function, useCapture);
Den första parametern är händelse_typen (t.ex. "click" eller "mousedown").
Den andra parametern är den funktion som vi behöver anropa när händelsen inträffar.
Den tredje parametern är ett booleskt värde som specificerar om användning av händelsespjällning eller händelsinhämtning. Denna parameter är valfri.
Observera:Använd inte prefixet "on" för händelser; använd "click" istället för "onclick".
Lägg till en händelselyssnare till ett element
Exempel
Visa "Hello World!" när användaren klickar på ett element:
element.addEventListener("click", function(){ alert("Hello World!"); });
Du kan också använda externa "namngivna" funktioner:
Exempel
Visa "Hello World!" när användaren klickar på ett element:
element.addEventListener("click", myFunction); function myFunction() { alert ("Hello World!"); }
Lägg till flera händelselyssnare till samma element
addEventListener()
Metoden tillåter dig att lägga till flera händelser till samma element utan att överskriva befintliga händelser:
Exempel
element.addEventListener("click", myFunction); element.addEventListener("click", mySecondFunction);
Du kan lägga till olika typer av händelser till samma element:
Exempel
element.addEventListener("mouseover", myFunction); element.addEventListener("click", mySecondFunction); element.addEventListener("mouseout", myThirdFunction);
Lägg till en händels hanterare till Window-objektet
addEventListener()
Tillåter dig att lägga till en händelselyssnare till vilket som helst HTML DOM-objekt, till exempel HTML-element, HTML-objekt, fönsterobjekt eller andra objekt som stöder händelser, som till exempel xmlHttpRequest-objekt.
Exempel
Lägg till en händelselyssnare som triggas när användaren justerar fönstret:
window.addEventListener("resize", function(){ document.getElementById("demo").innerHTML = sometext; });
Överför parametrar
När du skickar med parametervärden, använd en "anonym funktion" som ett argument för att anropa den specifika funktionen:
Exempel
element.addEventListener("click", function(){ myFunction(p1, p2); });
Evenemangsbubbling eller eventkapning?
Det finns två metoder för att sprida evenemang i HTML DOM: bubbling och kapning.
Evenemangsuppgifter är en metod för att definiera elementets ordning när ett evenemang inträffar. Om <div>-elementet innehåller ett <p>-element och användaren klickar på <p>-elementet, vilket element bör hantera "click"-händelsen först?
I bubbling, hanteras händelserna för de inre elementen först, sedan de yttre: Först behandlas <p>-elementets klickhändelse, sedan <div>-elementets klickhändelse.
I kapning, hanteras händelserna för de yttersta elementen först, sedan de inre: Först behandlas <div>-elementets klickhändelse, sedan <p>-elementets klickhändelse.
I addEventListener() metoden kan du använda "useCapture"-parametern för att specificera propagationstypen:
addEventListener(event, function, useCapture);
Standardvärdet är false
kommer det att använda bubblingpropagation, om detta värde sätts till true
om värdet sätts till
Exempel
document.getElementById("myP").addEventListener("click", myFunction, true); document.getElementById("myDiv").addEventListener("click", myFunction, true);
removeEventListener() metoden
removeEventListener()
Metoden tar bort eventhanterare som har lagts till via addEventListener()
Evenemangshanterare som läggs till metoden:
Exempel
element.removeEventListener("mousemove", myFunction());
Webbläsarstöd
Numer i tabellen anger den första webbläsare som helt stöder dessa metoder.
Metod | |||||
addEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
removeEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
Anmärkning:IE 8, Opera 6.0 och tidigare versioner stöder inte addEventListener()
och removeEventListener()
Metod. Men, för dessa speciella versioner av webbläsare kan du använda attachEvent()}
Metod för att lägga till eventhanterare till elementet och detachEvent()
Metod borttagning:
element.attachEvent(event, function); element.detachEvent(event, function);
Exempel
Korsbläddringslösning:
var x = document.getElementById("myBtn"); if (x.addEventListener) { // För huvudsakliga webbläsare, utom IE 8 och äldre versioner x.addEventListener("click", myFunction); } else if (x.attachEvent) { // För IE 8 och tidigare versioner x.attachEvent("onclick", myFunction); }
HTML DOM Event-objekt-referenshandbok
För en fullständig lista över alla HTML DOM-händelser, besök vår HTML DOM Event-objekt-referenshandbok.
- Föregående sida DOM-händelser
- Nästa sida DOM-navigering