我有類似:如何防止我的按鈕的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事件。 –
告訴我們爲什麼會幫助我們找出最適合您的解決方案。 –