我有类似的东西:
<button id="button" onclick="alert('Hi')">a button</button>
我想停用按钮 onclick 操作,假设页面加载后 5 秒。
注意:我不想禁用该按钮,只是希望它的 onclick 操作在 5 秒后才起作用。
我有类似的东西:
<button id="button" onclick="alert('Hi')">a button</button>
我想停用按钮 onclick 操作,假设页面加载后 5 秒。
注意:我不想禁用该按钮,只是希望它的 onclick 操作在 5 秒后才起作用。
超时 5 秒后使用 jQuery 绑定事件。
setTimeout(function(){
$('#button').click(function(){
alert('Hi');
});
}, 5000);
您可以简单地删除该onclick
属性,然后在 5 秒后将其放回。
var onClickFunc = $('#button').prop('onclick');
$('#button').removeProp('onclick');
setTimeout(function(){
$('#button').click(onClickFunc);
}, 5000);
演示:http: //jsfiddle.net/KX5g7/1/
$(function(){
$('#button').attr('savedclick', $('#button').attr('onclick')).removeAttr('onclick');
setTimeout(enableButton, 5000);
});
function enableButton(){
$('#button').attr('onclick', $('#button').attr('savedclick')).removeAttr('savedclick');
}
<a href="http://jsfiddle.net/Yupt9/1/" rel="nofollow noreferrer">演示
$(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'); });
)