Düyməyə çox klikləməklə JavaScript-də timerin işə salınması
Yuxarıda mənim təqdim etdiyim kod, əslində müəyyən bir problemə malikdir. Bu problem düyməmizə bir neçə klik etdikdə özünü göstərir. Bu halda hər klik yeni timerin işə salınmasına səbəb olacaq.
Yəni, məsələn, düyməyə üç dəfə klik etmək üç timerin işə salınmasına səbəb olacaq, və bu timerlərin hər biri sayğacın dəyərini konsola çıxaracaq. Bu o deməkdir ki, dəyərlər üç dəfə tez dəyişəcək!
Təsvir olunan problemi həll etmək üçün sadəcə etmək lazımdır ki, düyməyə təkrar klik etmək yeni timerin işə salınmasına səbəb olmasın. Məsələn, timer işə düşdükdən sonra düymədən bağlı olan klik işləyicisini ayrılmaq olar:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // işləyicini ayırırıq
});
Əvvəlki məsələnin həllinizi götürün. Düyməyə çox klik etməyin saymanın sürətlənməsinə səbəb olduğunu yoxlayın. Bu problemi həll edin.