jquery disable a button for a specific time
Since this is likely to be a task you might like to repeat, I think the best way to do this would be to extend jQuery like so:
$.fn.timedDisable = function(time) { if (time == null) { time = 5000; } return $(this).each(function() { $(this).attr('disabled', 'disabled'); var disabledElem = $(this); setTimeout(function() { disabledElem.removeAttr('disabled'); }, time); });};
This will allow you to call a function on a set of matched elements which will temporarily disable them. As it is written, you can simply call the function, and the selected elements will be disabled for 5 seconds. You would do that like so:
$('#some-button').timedDisable();
You can adjust the default time setting by changing the 5000
in the following line:
if (time == null) { time = 5000; }
You can optionally pass in a time value in milliseconds to control how long the elements will be disabled for. For example:
$('#some-button').timedDisable(1000);
Here's a working demo: http://jsfiddle.net/fG2ES/
Try this.
(function(){$('button').on('click',function(){var $this=$(this); $this .attr('disabled','disabled'); setTimeout(function() { $this.removeAttr('disabled'); }, 3000); }); })();
You can find a working example here http://jsfiddle.net/informativejavascript/AMqb5/