Вы можете использовать то, что мы называем «флагом». В этом случае флагом будет переменная, для которой вы установили значение true или false, чтобы указать, может ли пользователь щелкнуть или нет (переменная canClick
в приведенном ниже примере) . Каждый раз, когда пользователь щелкает, проверяйте флаг перед выполнением своей функции. И используйте setTimeout
, чтобы сбросить флаг после задержки:
var prompts = ["Cow", "Dog", "Cat", "Rat", "Owl"],
canClick = true,
clickDelay = 2 * 1000, // 2 seconds for the demo
generateBtn = document.getElementById('generate-btn'),
textbox = document.getElementById("textbox");
generateBtn.addEventListener('click', onBtnClick);
function onBtnClick() {
if (canClick) {
canClick = false;
generateBtn.disabled = true;
displayRandomPrompt();
// After a delay
setTimeout(function() {
canClick = true;
generateBtn.disabled = false;
}, clickDelay);
}
}
function displayRandomPrompt() {
textbox.value = prompts[Math.floor(Math.random() * prompts.length)];
}
<input id="textbox" />
<button id="generate-btn">New suggestion</button>