De addEventListener

De addEventListener - inleiding

In JavaScript/ op een webpagina kunnen we verschillende acties van de gebruiker afvangen. Een van de bekenste acties van een gebruik is een klik, of in het Engels, click. Zo een actie vann de gebruiker noemen we in JavaScript een event vrij vertaald een evenement.

Er zijn veel verschillende events die je kan afvangen binnen JavaScript. In het voorbeeld nu vangen we constant het click event af, onderaan vind je een klein lijstje met mogelijke andere events die je kan afvangen.

De addEventListener - werking

HTML

<button class="my-button">Klik hier</button>
In de HTML zie je 1 button met een class my-button. Omdat het een gewone button is zal er verder in de HTML ook niets gebeuren.

JavaScript

function myFunction() {
    alert('Er is op de button geklikt');
}

const myBtn = document.querySelector('.my-button');
myBtn.addEventListener('click', myFunction);

function myFunction() {
  alert('Er is op de button geklikt');
}
In de JavaScript code staat als eerste een simpele functie met de naam myFunction.
Daara wordt er een variabele aangemaakt (die niet veranderd) en daarin halen we de button op uit de HTML code. Omdat ik zeker weet dat het element bestaat hebben we nu geen if-statement gebruikt om te kijken of de button wel bestaat.
Als laatste stap gebruiken we de variabele met het element (myBtn) en voegen we daar een addEventListener aan toe met de functie .addEventListener.
Als eerste melden we welke activiteit/ welk event we willen afvangen, in dit geval een click event, en als tweede geven we aan welke functie er aan gekoppeld wordt.

Verdieping - functie geschreven IN de eventListener

Bovenstaande geeft een goed voorbeeld weer van hoe je een losse functie kan maken en die kan gebruiken in de addEventListener. Soms heb je niet echt een losse functie nodig en dan kan je de functie ook (naamloos) direct als parameter in de addEventListener te zetten.

Hiervoor blijft praktisch alles hetzelfde, alleen de functie naam vervalt en je zet de functie in de listener.

const myBtn = document.querySelector('.my-button');
myBtn.addEventListener('click', function() {
    alert('Er is op de button geklikt');
});
Als je goed kijkt zie je dat de functie nu staat op de plaats waar eerst de naam van de functie stond en dat na het woordje function ook geen naam meer staat. De rest is helemaal hetzelfde!

Andere events

Zoals boven beschreven kan je meerdere events afvangen met een listener, mocht je geen klik maar iets anders willen afvangen zie de lijst hieronder:

                
Muis events:
click – als er op een element geklikt wordt contextmenu – rechter muisklik mouseover / mouseout – als de muis over of weggaat mousedown / mouseup – als de muis klik naar beneden gaat of los gelaten wordt mousemove – als de muis beweegt
Keyboard events:
keydown and keyup – als een toets op het toetsenbord ingedrukt wordt
Form element events:
submit –als een formulier verstuurd wordt focus – als de focus op een element komt zoals op een <input>.
Document events:
DOMContentLoaded – als alle HTML geladen en verwerkt is, de DOM is compleet geladen
Voor meer informatie raden we je aan om Google te gebruiken met de zoekworden: ES6, eventListener, example en dan het event wat hier bovenstaat en ga dan naar de pagina's van Stackoverflow.

Jouw JavaScript

Op de MBO-SD Fiddle site kan je meer oefenen met deze stof.

Klik hier voor de MBO-SD Fiddle site