我有类似的东西:
<button id="button" onclick="alert('Hi')">a button</button>
我想取消激活按钮onclick动作,让我们说在页面加载后5秒钟。
注意:我不想禁用该按钮,只是希望它的onclick动作不能工作直到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);
答案 2 :(得分:1)
$(function(){
$('#button').attr('savedclick', $('#button').attr('onclick')).removeAttr('onclick');
setTimeout(enableButton, 5000);
});
function enableButton(){
$('#button').attr('onclick', $('#button').attr('savedclick')).removeAttr('savedclick');
}
答案 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'); });
)