如何防止我的按钮点击5秒钟

时间:2012-05-04 16:23:57

标签: javascript jquery

我有类似的东西:

<button id="button" onclick="alert('Hi')">a button</button>


我想取消激活按钮onclick动作,让我们说在页面加载后5秒钟。
注意:我不想禁用该按钮,只是希望它的onclick动作不能工作直到5秒。

5 个答案:

答案 0 :(得分:4)

使用jQuery在超时5秒后绑定事件。

setTimeout(function(){
    $('#button').click(function(){
        alert('Hi');
    });
}, 5000);

答案 1 :(得分:4)

您只需删除onclick属性,然后在5秒后将其恢复。

var onClickFunc = $('#button').prop('onclick');
$('#button').removeProp('onclick');
setTimeout(function(){
    $('#button').click(onClickFunc);
}, 5000);

DEMO:http://jsfiddle.net/KX5g7/1/

答案 2 :(得分:1)

$(function(){
    $('#button').attr('savedclick', $('#button').attr('onclick')).removeAttr('onclick');  
    setTimeout(enableButton, 5000);    
});

function enableButton(){
    $('#button').attr('onclick', $('#button').attr('savedclick')).removeAttr('savedclick');
}

DEMO

答案 3 :(得分:1)

$(function(){
        $('#button').unbind('click');
        setTimeout(function(){
            $('#button').bind('click');
        }, 5000);
    });​

修改

这似乎没有取消绑定事件,因为 Rocket 告诉我们,所以,我认为一个好的解决方案可能是删除触发事件的属性:

$(function(){
    $('#button').attr('onclick', '');
    setTimeout(function(){
        $('#button').attr('onclick', 'alert("Hi")');
    }, 5000);
});​

答案 4 :(得分:0)

为此,请不要将onclick内联。

$(document).ready(...)函数中,使用setTimeout使用回调函数等待5秒来设置onclick($('#button').click(function(btn) { alert('Hi'); });