我有类似:如何防止我的按钮的onclick 5秒
<button id="button" onclick="alert('Hi')">a button</button>
我想取消按钮的onclick行动,比方说为页面加载后5秒。
注意:我不想让按钮被禁用,只是想要它的onclick动作不工作直到5秒。
我有类似:如何防止我的按钮的onclick 5秒
<button id="button" onclick="alert('Hi')">a button</button>
我想取消按钮的onclick行动,比方说为页面加载后5秒。
注意:我不想让按钮被禁用,只是想要它的onclick动作不工作直到5秒。
您可以简单地删除onclick
属性,然后在5秒钟后放回。
var onClickFunc = $('#button').prop('onclick');
$('#button').removeProp('onclick');
setTimeout(function(){
$('#button').click(onClickFunc);
}, 5000);
我不知道我们在1.6之前没有'.prop()'的生活。 – iambriansreed
@iambriansreed:With'.attr' :-P –
使用jQuery在5秒超时后绑定事件。
setTimeout(function(){
$('#button').click(function(){
alert('Hi');
});
}, 5000);
我不能,** onclick =“alert('Hi')”**来自服务器.. – skafandri
@kil我想的很多。见火箭的答案。 – iambriansreed
我对asnwer做了改进,5秒后解除绑定。 –
$(function(){
$('#button').attr('savedclick', $('#button').attr('onclick')).removeAttr('onclick');
setTimeout(enableButton, 5000);
});
function enableButton(){
$('#button').attr('onclick', $('#button').attr('savedclick')).removeAttr('savedclick');
}
不要将字符串传递给'setTimeout',它使用'eval'。传递函数。 –
@Rocket如果您对传递给它的字符串进行了硬编码,那么使用'eval'(显式或隐式)没有任何危险。这只是稍微低效。 – Blazemonger
@Blazemonger:效率低下,做法不好。没有理由使用它。这就像使用螺丝刀作为锥子。你可以,但不应该。 :-P –
$(function(){
$('#button').unbind('click');
setTimeout(function(){
$('#button').bind('click');
}, 5000);
});
编辑:
这似乎为n OT取消绑定事件作为火箭告诉,所以,我认为一个好的解决办法是删除触发事件的属性:
$(function(){
$('#button').attr('onclick', '');
setTimeout(function(){
$('#button').attr('onclick', 'alert("Hi")');
}, 5000);
});
其他方式,他希望页面加载时解除绑定,并在5秒钟后重新绑定。 –
完成,现在已停用5秒,然后开始绑定事件onClick。 –
'$('#button')。unbind('click');'似乎没有取消绑定onclick事件。 –
告诉我们为什么会帮助我们找出最适合您的解决方案。 –