ජාවාස්ක්රිප්ට් හි ටයිමරය ආරම්භ කිරීම සඳහා බොත්තම ක්ලික් කිරීම අතිච්ඡාදනය කිරීම
මා විසින් ඉහත දක්වා ඇති කේතය, ඇත්ත වශයෙන්ම සමහර ගැටලුවක් ඇත. මෙම ගැටලුව පෙන්වනු ලබන්නේ අපගේ බොත්තම ක්ලික් කිරීම කිහිප වතාවක් කරන විටය. මෙම අවස්ථාවේදී සෑම ක්ලික් කිරීමක්ම නව ටයිමරයක් ආරම්භ කිරීමට හේතු වේ.
එනම්, උදාහරණයක් ලෙස, බොත්තම මත ක්ලික් කිරීම තුන් වතාවක් කිරීමෙන් ටයිමර තුනක් ආරම්භ වීමට හේතු වනු ඇත, සහ මෙම ටයිමර එක් එක් ගණකයේ අගය කොන්සෝලයට ප්රතිදානය කරයි. මෙයින් අදහස් වන්නේ, අගයන් වෙනස් වන්නේ තෙගුණයක් වේගයෙන් බවයි!
විස්තර කරන ලද ගැටලුව විසඳීම සඳහා සරලව බොත්තම මත නැවත ක්ලික් කිරීම නව ටයිමරයක් ආරම්භ කිරීමට හේතු නොවන පරිදි සකස් කිරීමයි. උදාහරණයක් ලෙස, ටයිමරය ආරම්භ කිරීමෙන් පසු එයට බැඳුනු ක්ලික් කිරීමේ හසුරුවන්නා ඉවත් කළ හැකිය:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // හසුරුවන්නා ඉවත් කරමු
});
ඔබගේ පෙර කාර්යයට විසඳුම ගන්න. බොත්තම මත ක්ලික් කිරීම අතිච්ඡාදනය කිරීම ගණන් කිරීම වේගවත් කරන බව පරීක්ෂා කරන්න. මෙම ගැටලුව නිරාකරණය කරන්න.