I am having troubles with some jQuery code when I click a button very quickly. So to solve this I need to only allow users to click a button every 2 seconds or so. How can I make a button only clickable every 2 seconds (or whatever time I choose)?
Assuming you're using <button>
or <input>
,
$('#yourButton').click(function(){
var btn = $(this);
btn.prop('disabled',true);
window.setTimeout(function(){
btn.prop('disabled',false);
},2000);
});
jsFiddle DEMO
The 2000
is the length of time before the button is re-enabled, in milliseconds
Have the "click" handler add a class ("clicked" maybe) to the button, and also start a timer to remove the class 2 seconds later. If the handler sees that "clicked" is already applied to the button, it does nothing.
You could also disable the button; that might be better, as it'd give the user visual indication that the button won't do anything.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With