Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery button click only every 2 seconds

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)?

like image 504
Skovy Avatar asked Jul 11 '12 17:07

Skovy


2 Answers

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

like image 97
jackwanders Avatar answered Sep 27 '22 01:09

jackwanders


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.

like image 28
Pointy Avatar answered Sep 24 '22 01:09

Pointy