JS-zelfstudie

JS HOME JS Introductie JS Waarheen? JS-uitgang JS-verklaringen JS-syntaxis JS-opmerkingen JS-variabelen JS Let JS Const JS-operators JS Rekenen JS-opdracht JS-gegevenstypen JS-functies JS-objecten JS-evenementen JS-snaren JS String-methoden JS String zoeken JS String-sjablonen JS-nummers JS-nummermethoden JS-arrays JS-array-methoden JS-array sorteren JS-array-iteratie JS Array Const JS-datums JS-datumnotaties JS Datum Ophaalmethoden Methoden voor het instellen van JS-datum JS Math JS Willekeurig JS Booleans JS-vergelijkingen JS-voorwaarden JS-schakelaar JS Loop For JS-lus voor binnen JS Loop For Of JS-lus terwijl JS Break JS-iteraties JS-sets JS-kaarten JS Typeof JS Type conversie JS Bitwise JS RegExp JS-fouten JS-bereik JS Hijsen JS strikte modus JS dit trefwoord JS-pijlfunctie JS-lessen JS JSON JS-foutopsporing JS-stijlgids JS-best practices JS-fouten JS-prestaties JS Gereserveerde Woorden

JS-versies

JS-versies JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-geschiedenis

JS-objecten

Objectdefinities Objecteigenschappen Objectmethoden Objectweergave Objectaccessoires Objectconstructeurs Objectprototypes Object-Iterables Objectsets Objectkaarten Objectreferentie

JS-functies

Functiedefinities Functieparameters: Functie-aanroep Functie-oproep: Functie Toepassen Functie Sluitingen

JS-lessen

Klas Intro Klasse Overerving Klasse Statisch

JS Asynchrone

JS-callbacks JS asynchroon JS belooft JS Async/Wachten

JS HTML DOM

DOM Intro DOM-methoden DOM-document DOM-elementen DOM HTML DOM-formulieren DOM-CSS DOM-animaties DOM-evenementen DOM-gebeurtenisluisteraar DOM-navigatie DOM-knooppunten DOM-collecties DOM-knooppuntlijsten

JS-browserstuklijst

JS-venster JS-scherm JS-locatie JS-geschiedenis JS-navigator JS pop-upwaarschuwing JS-timing JS-koekjes

JS Web API's

Introductie web-API Web Forms API Webgeschiedenis-API Webopslag-API Web Worker-API Web Fetch-API Webgeolocatie-API

JS AJAX

Ajax-intro AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

JS JSON

JSON-intro JSON-syntaxis JSON versus XML JSON-gegevenstypen JSON ontleden JSON Stringify JSON-objecten JSON-arrays JSON-server JSON PHP JSON HTML JSON JSONP

JS versus jQuery

jQuery-kiezers jQuery HTML jQuery CSS jQuery DOM

JS-graphics

JS-graphics JS Canvas JS Plotly JS Chart.js JS Google-kaart JS D3.js

JS-voorbeelden

JS-voorbeelden JS HTML DOM JS HTML-invoer JS HTML-objecten JS HTML-evenementen JS-browser JS-editor JS-oefeningen JS-quiz JS-certificaat

JS-referenties

JavaScript-objecten HTML DOM-objecten


JavaScript HTML DOM EventListener


De methode addEventListener()

Voorbeeld

Voeg een gebeurtenislistener toe die wordt geactiveerd wanneer een gebruiker op een knop klikt:

document.getElementById("myBtn").addEventListener("click", displayDate);

De addEventListener()methode koppelt een gebeurtenishandler aan het opgegeven element.

De addEventListener()methode koppelt een event-handler aan een element zonder bestaande event-handlers te overschrijven.

U kunt veel gebeurtenishandlers aan één element toevoegen.

U kunt veel event handlers van hetzelfde type toevoegen aan één element, dwz twee "click" events.

U kunt gebeurtenislisteners aan elk DOM-object toevoegen, niet alleen HTML-elementen. dwz het vensterobject.

De addEventListener()methode maakt het gemakkelijker om te bepalen hoe de gebeurtenis reageert op borrelen.

Wanneer u de addEventListener()methode gebruikt, wordt het JavaScript gescheiden van de HTML-opmaak, voor een betere leesbaarheid en kunt u gebeurtenislisteners toevoegen, zelfs als u de HTML-opmaak niet beheert.

U kunt een gebeurtenislistener eenvoudig verwijderen met behulp van de removeEventListener()methode.


Syntaxis

element.addEventListener(event, function, useCapture);

De eerste parameter is het type gebeurtenis (zoals " click" of " mousedown" of een ander HTML DOM-gebeurtenis .)

De tweede parameter is de functie die we willen aanroepen wanneer de gebeurtenis plaatsvindt.

De derde parameter is een booleaanse waarde die aangeeft of gebeurtenisborrelen of het vastleggen van gebeurtenissen moet worden gebruikt. Deze parameter is optioneel.

Merk op dat je het voorvoegsel "aan" niet gebruikt voor de gebeurtenis; gebruik " click" in plaats van " onclick".


Een gebeurtenishandler aan een element toevoegen

Voorbeeld

Melding "Hallo wereld!" wanneer de gebruiker op een element klikt:

element.addEventListener("click", function(){ alert("Hello World!"); });

U kunt ook verwijzen naar een externe "benoemde" functie:

Voorbeeld

Melding "Hallo wereld!" wanneer de gebruiker op een element klikt:

element.addEventListener("click", myFunction);

function myFunction() {
  alert ("Hello World!");
}


Voeg veel gebeurtenishandlers toe aan hetzelfde element

Met de addEventListener()methode kunt u veel gebeurtenissen aan hetzelfde element toevoegen, zonder bestaande gebeurtenissen te overschrijven:

Voorbeeld

element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);

U kunt gebeurtenissen van verschillende typen toevoegen aan hetzelfde element:

Voorbeeld

element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);

Voeg een gebeurtenishandler toe aan het venster Object

Met de addEventListener()methode kunt u gebeurtenislisteners toevoegen aan elk HTML DOM-object, zoals HTML-elementen, het HTML-document, het vensterobject of andere objecten die gebeurtenissen ondersteunen, zoals het xmlHttpRequestobject.

Voorbeeld

Voeg een gebeurtenislistener toe die wordt geactiveerd wanneer een gebruiker het formaat van het venster wijzigt:

window.addEventListener("resize", function(){
  document.getElementById("demo").innerHTML = sometext;
});

Parameters doorgeven

Gebruik bij het doorgeven van parameterwaarden een "anonieme functie" die de opgegeven functie aanroept met de parameters:

Voorbeeld

element.addEventListener("click", function(){ myFunction(p1, p2); });

Event Bubbling of Event Capturing?

Er zijn twee manieren om gebeurtenissen in de HTML DOM te verspreiden: bubbelen en vastleggen.

Gebeurtenisvoortplanting is een manier om de volgorde van de elementen te definiëren wanneer een gebeurtenis plaatsvindt. Als u een <p>-element in een <div>-element hebt en de gebruiker klikt op het <p>-element, van welk element moet dan eerst de "klik"-gebeurtenis worden afgehandeld?

Bij bubbling wordt eerst de gebeurtenis van het binnenste element afgehandeld en daarna de buitenste: eerst wordt de klikgebeurtenis van het <p>-element afgehandeld en daarna de klikgebeurtenis van het <div>-element.

Bij het vastleggen wordt eerst de gebeurtenis van het buitenste element afgehandeld en daarna de binnenste: de klikgebeurtenis van het <div>-element wordt eerst afgehandeld, daarna de klikgebeurtenis van het <p>-element.

Met de methode addEventListener() kunt u het type propagatie specificeren door de parameter "useCapture" te gebruiken:

addEventListener(event, function, useCapture);

De standaardwaarde is false, waarbij de bubbelpropagatie wordt gebruikt. Wanneer de waarde is ingesteld op true, gebruikt de gebeurtenis de capture-propagatie.

Voorbeeld

document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);

De methode removeEventListener()

De removeEventListener()methode verwijdert gebeurtenishandlers die zijn gekoppeld met de methode addEventListener() :

Voorbeeld

element.removeEventListener("mousemove", myFunction);

HTML DOM-gebeurtenisobjectreferentie

Bekijk onze volledige HTML DOM Event Object Reference voor een lijst met alle HTML DOM-gebeurtenissen .


Test jezelf met oefeningen

Oefening:

Gebruik de eventListenerom een ​​onclick-gebeurtenis toe te wijzen aan het <button>element.

<button id="demo"></button>

<script>
document.getElementById("demo").("", myFunction);
</script>