Как сделать ограничение на количество кликов в секунду js
Как можно реализовать ограниченное количество кликов в секунду по кнопке с помощью js.
Если вот такой вот код - jsfiddle.net
Нужно сделать так чтобы на кнопку с id="big-btn" можно было нажать не больше 15 раз в 1 секунду. Если пользователь нажимает более 15 раз то должно срабатывать действие, например появляться всплывающие окно.
var clicks = 0;
function insertText(clicks) {
document.getElementById('clicks-count').innerText = clicks;
}
const onClick = () => {
clicks += 1;
insertText(clicks);
}
document.getElementById('big-btn').addEventListener('click', onClick)
<div class="n1">
<button id="big-btn">Клик</button>
<div id="clicks-count">0</div>
</div>
Ответы (1 шт):
Автор решения: Andrey Semykin
→ Ссылка
Речь точно о кликах мышкой, не о нажатиях клавиши? Не могу представить себе человека, кликающего 15 раз в секунду. :) В любом случае, можно использовать такую конструкцию. Она будет обрабатывать клики раз в 100мс, все остальные клики игнорируются.
var clicks = 0;
function delay(f) {
let isCooldown = false;
return function() {
if (isCooldown) return;
f.apply(this, arguments);
isCooldown = true;
setTimeout(() => isCooldown = false, 100);
};
}
function insertText(clicks) {
document.getElementById('clicks-count').innerText = clicks;
}
const onClick = () => {
console.log('click!');
clicks += 1;
insertText(clicks);
}
document.getElementById('big-btn').addEventListener('click', delay(onClick))
<div class="n1">
<button id="big-btn">Клик</button>
<div id="clicks-count">0</div>
</div>