如何使用户点击事件不可点击几秒钟?

时间:2013-12-17 06:36:20

标签: jquery

一旦用户点击按钮,如何让点击事件对用户不可点击几秒钟?

例如。

$('button').on('click',function(){
alert('you clicked');
}

每次都会发出警报。但我希望将该按钮设置为其他任何我已经分配了点击事件的东西,例如,如果用户在接下来的20秒内再次点击它不应该工作,并且在20秒后按钮应该是可点击的,如果用户在20秒后点击它再次发出警报。

4 个答案:

答案 0 :(得分:2)

 $('button').on('click',function(){
  alert('you clicked');
  $(this).prop("disabled", true);
  setTimeout( function(){$(this).prop("disabled", false);},20000 );
 }

答案 1 :(得分:1)

未经测试但是:

var isClickable = true;
$('button').on('click',function(){
    //Exit if not clickable
    if(!isClickable)
        return false;

    //Set not clickable
    isClickable = false;
    //And finally plan to reset clickable in 20 seconds 
    setTimeout(function(){isClickable=true;},20000);

    //Then, your code
    alert('you have just clicked');
}

答案 2 :(得分:1)

http://jsfiddle.net/bzY62/

$('button').on('click', function(){
    var _$this = $(this);

    if(!_$this.data('blocked')) {
        alert('you clicked');

        _$this.data('blocked', true);

        setTimeout(function() {
           _$this.data('blocked', false);
        }, 5000); // in miliseconds
    }
});

答案 3 :(得分:0)

你可以试试这个

var seconds = 5; //seconds to disable a button
$('#yourbutton').click(function(){ //yourbutton is the id of button
    var btn = $(this);
    btn.prop('disabled', true);  //disables the buttons
    setTimeout(function(){  //renable the button after seconds specified
        btn.prop('disabled', false);
    }, seconds*1000);
});