Кнопкага бир нече жолу басуу менен JavaScript'те таймерди иштетүү
Менин жогоруда келтирген кодум, чындыгында белгилүү бир көйгөйгө ээ. Бул көйгөй биздин кнопкага бир нече жолу чыкылдатсаңыз пайда болот. Бул учурда ар бир чыкылдатуу жаңы таймерди иштетүүгө алып келет.
Башкача айтканда, мисалы, кнопкага үч жолу басуу үч таймер иштей башташына алып келет, жана бул таймерлердин ар бири эсептегичтин маанисин консолго чыгарат. Бул дегенди билдирет, маанилер үч эсе тез өзгөрөт!
Сүрөттөлгөн көйгөйдү чечүү үчүн, жөн гана кнопкага кайра басуу жаңы таймерди иштетүүгө апарып бербөөсүн камсыз кылыш керек. Мисалы, таймерди иштеткенден кийин, кнопкага байланышкан чыкылдатуу обработчигин ажыратып коюуга болот:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // обработчикти ажыратабыз
});
Мурунку тапшырманын чечимиңизди алыңыз. Кнопкага бир нече жолу басуу эсептөөнү ылдамдатарын текшериңиз. Бул көйгөйдү оңдоп чыгыңыз.