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

How to prevent my button's onclick for 5 seconds

本文关键字:按钮 何防止 我的      更新时间:2023-09-26

我有这样的东西:

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


我想停用按钮点击操作,比如说页面加载后的 5 秒。
注意:我不想禁用按钮,只是希望它的点击操作直到 5 秒才起作用。

您只需删除 onclick 属性,然后在 5 秒后将其放回原处即可。

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

演示:http://jsfiddle.net/KX5g7/1/

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

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

演示

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

编辑:

这似乎并没有像 Rocket 所说的那样解除事件的绑定,所以,我认为一个好的解决方案可能是删除触发事件的属性:

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

为此,不要将onclick内联。

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