Усули 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,
ки воқеаро аз унсур ҷудо мекунад