MBO-SD : De site voor software developer in het MBO
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:
Voor meer informatie raden we je aan om Google te gebruiken met de zoekworden: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 beweegtKeyboard events:
keydown and keyup – als een toets op het toetsenbord ingedrukt wordtForm 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
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