Адвязванне падзей у JavaScript
У гэтым ўроку мы з вамі навучымся адвязваць апрацоўшчыкі падзеі, якія раней былі прывязаны намі да элементаў. Хай для прыкладу дадзеная наступная кнопка:
<input id="button" type="submit">
Прывязам да гэтай кнопкі функцыю func
:
let button = document.querySelector('#button');
button.addEventListener('click', func);
function func() {
console.log('!!!');
}
Давайце цяпер зробім так, каб апрацоўшчык
падзеі спрацоўваў на першы клік, а потым
адвязваўся ад кнопкі. Для гэтага існуе
спецыяльны метад removeEventListener
.
Гэты метад першым параметрам прымае тып
падзеі, а другім - спасылку на функцыю, якую
трэба адвязаць.
Як правіла, гэта значыць, што апрацоўшчык падзеі
адвязваецца так жа, як і прывязваўся.
Гэта значыць, калі мы прывязалі яго вось так: addEventListener('click',
func)
, то і адвязваем з тымі ж параметрамі,
вось так: removeEventListener('click',
func)
.
Такім чынам, вырашым пастаўленую намі задачу:
let button = document.querySelector('#button');
button.addEventListener('click', func);
function func() {
console.log('!!!');
this.removeEventListener('click', func);
}
Дадзена спасылка і кнопка. Па націску на кнопку дадайце
ў канец тэксту спасылкі змест яе атрыбута
href
у круглых дужках. Зрабіце так,
каб гэта дадаванне адбывалася толькі па
першым націску.
Дадзена кнопка, значэннем якой служыць лік
1
. Зрабіце так, каб па кліку на
гэту кнопку яе значэнне кожны раз павялічвалася
на адзінку. Пасля таго, як значэнне кнопкі
дасягне 10
- адвяжыце апрацоўшчык
падзеі, каб кнопка больш не рэагавала
на націск.