Шматразовае націсканне на кнопку для запуску таймера на JavaScript
Код, прыведзены мною вышэй, на самой справе мае некаторую праблему. Гэтая праблема праяўляецца ў тым выпадку, калі на нашу кнопку зрабіць некалькі клікаў. У гэтым выпадку кожны клік будзе прыводзіць да запуску новага таймера.
Гэта значыць, да прыкладу, тры націсканні на кнопку прывядуць да таго, што будзе запушчана тры таймеры, і кожны з гэтых таймераў будзе выводзіць значэнне лічыльніка ў кансоль. Гэта значыць, што значэнні будуць мяняцца ў тры разы хутчэй!
Для вырашэння апісанай праблемы трэба проста зрабіць так, каб паўторнае націсканне на кнопку не прыводзіла да новага запуску таймера. Напрыклад, можна пасля старту таймера адвязваць ад кнопкі прывязаны апрацоўшчык кліку:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // адвязваем апрацоўшчык
});
Вазьміце ваша рашэнне папярэдняй задачы. Праверце, што шматразовае націсканне на кнопку прыводзіць да паскарэння адліку. Выпраўце гэтую праблему.