Meetod addEventListener
Meetod addEventListener võimaldab määrata
elemendile sündmuste töötlejaid. Selle abil
saab näiteks öelda, mida teha nupu klõpsamise
korral või mida teha teksti sisestamise
korral tekstiväljale. Esimeses parameetris määrame
edastatava sündmuse tüübi, teises - funktsiooni, mis
käivitub pärast esimeses parameetris määratud sündmust.
Kolmandas valikulises parameetris
edastame objekti omadused (once, capture,
passive) või parameetri useCapture.
Süntaks
element.addEventListener('sündmuse tüüp', funktsioon, [objekti omadused]);
või
element.addEventListener('sündmuse tüüp', funktsioon, [useCapture]);
Näide
Teeme nii, et nupu klõpsamisel kuvataks sõnum:
<input type="button" id="button" value="klõpsa mind">
let button = document.querySelector('#button');
button.addEventListener('click', function() {
alert('sõnum');
});
:
Näide
Kirjutame koodi nii, et sisendväljal fookuse kaotamisel kuvataks sõnum selle välja väärtusega:
<input id="input" value="tekst">
let input = document.querySelector('#input');
input.addEventListener('blur', function() {
alert(this.value);
});
:
Näide
Teeme nii, et nupu klõpsamisel kuvataks sõnum konsoolis ainult üks kord. Selleks kasutame teist parameetrit:
<input type="button" id="button" value="klõpsa mind">
let button = document.querySelector('#button');
button.addEventListener('click',
function() {
console.log('sõnum');
},
{
once: true
}
);
Näide
Parameeter passive keelab meetodi
event.preventDefault kutsumise sündmuse töötlemisel.
Rakendame eelmisele näitele meetodi
event.preventDefault ning määrame
parameetris passive väärtuseks true:
<input type="button" id="button" value="klõpsa mind">
let button = document.querySelector('#button');
button.addEventListener('click',
function(event) {
event.preventDefault();
console.log('Sõnumit pole');
},
{
passive: true
}
);
Pärast koodi käivitamist näeme järgmisi teateid:
'Sõnumit pole';
'Unable to preventDefault inside passive event listener invocation.'
Näide
Parameeter useCapture väärtusega
true näitab sündmuste levimist
sisesest elemendist välimiseni, kui
väärtus on false - välimisest
sisesesse elemendi. Parameetri
useCapture edastamisel selle nimi jäetakse vahele
ja kirjutatakse lihtsalt true või false.
Vaatame, kuidas sündmused levivad vanem- ja
lastelementides nendele klõpsates:
<div id="parent">Vanem
<p id="child">Laps</p>
</div>
#parent{
width: 60px;
padding: 10px;
border: 1px solid red;
text-align: center;
}
#child{
width: 60px;
marging-right: 40px;
border: 1px solid blue;
text-align: center;
}
let parent = document.querySelector('#parent');
let child = document.querySelector('#parent');
parent.addEventListener('click',
() => alert('vanem'),
true
);
child.addEventListener('click',
() => alert('laps'),
true
);
:
Vaata ka
-
meetod
removeEventListener,
mis lahtistab sündmuse elemendilt