Метад addEventListener
Метад addEventListener дазваляе прызначыць
на элемент апрацоўшчыкі падзей. З яго дапамогай,
можна паказаць, напрыклад, што рабіць пры кліку
па кнопцы або што рабіць пры наборы тэксту
ў тэкставым полі. У першым параметры паказваем
тып перадаваемай падзеі, ў другім - функцыю, якая
будзе спрацоўваць пасля падзеі, паказанай
у першым параметры. У трэцім неабавязковым параметры
перадаем характарыстыкі аб'екта (once, capture,
passive) або параметр useCapture.
Сінтаксіс
элемент.addEventListener('тып падзеі', функцыя, [характарыстыкі аб'екта]);
або
элемент.addEventListener('тып падзеі', функцыя, [useCapture]);
Прыклад
Давайце зробім так, каб пры кліку на кнопку выводзіўся паведамленне:
<input type="button" id="button" value="click me">
let button = document.querySelector('#button');
button.addEventListener('click', function() {
alert('message');
});
:
Прыклад
Давайце напішам код, каб пры страце фокусу ў інпуце выводзіўся паведамленне з тэкстам гэтага інпута:
<input id="input" value="text">
let input = document.querySelector('#input');
input.addEventListener('blur', function() {
alert(this.value);
});
:
Прыклад
Давайце зробім так, каб пры кліку на кнопку паведамленне выводзілася ў кансоль толькі адзін раз. Для гэтага скарыстаемся другім параметрам:
<input type="button" id="button" value="click me">
let button = document.querySelector('#button');
button.addEventListener('click',
function() {
console.log('message');
},
{
once: true
}
);
Прыклад
Параметр passive забараняе выклікаць метад
event.preventDefault пры апрацоўцы падзеі.
Давайце да папярэдняга прыкладу прымянім метад
event.preventDefault, а таксама пакажам у
параметры passive значэнне true:
<input type="button" id="button" value="click me">
let button = document.querySelector('#button');
button.addEventListener('click',
function(event) {
event.preventDefault();
console.log('No message');
},
{
passive: true
}
);
Пасля выканання кода мы ўбачым наступныя паведамленні:
'No message';
'Unable to preventDefault inside passive event listener invocation.'
Прыклад
Параметр useCapture у значэнні
true паказвае ўсплыццё падзей
ад унутранага элемента да знешняга, пры
значэнні false - ад знешняга
да ўнутранага элемента. Пры перадачы
параметра useCapture яго імя апускаецца
і запісвае проста true або false.
Давайце паглядзім як усплываюць падзеі ў бацькоўскім
і даччыным элементах пры кліку на іх:
<div id="parent">Parent
<p id="child">Child</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('parent'),
true
);
child.addEventListener('click',
() => alert('child'),
true
);
:
Глядзіце таксама
-
метад
removeEventListener,
які адвязвае падзею ад элемента