我想在觸發事件時刪除事件處理程序。我不能使用one()
,因爲有些情況下我不想刪除事件處理程序。這就是我的意思是:刪除JQuery中的當前事件處理程序?
$('#a').on('click',function(){
if(...)
// remove current event handler
});
編輯:我忘了提,有連接到$('#a')
其他事件處理程序。我只想刪除當前的一個。
我想在觸發事件時刪除事件處理程序。我不能使用one()
,因爲有些情況下我不想刪除事件處理程序。這就是我的意思是:刪除JQuery中的當前事件處理程序?
$('#a').on('click',function(){
if(...)
// remove current event handler
});
編輯:我忘了提,有連接到$('#a')
其他事件處理程序。我只想刪除當前的一個。
使用.off(),名稱爲間隔event names
$('#a').on('click.myevent', function() {
if (...)
// remove current event handler
$(this).off('click.myevent')
});
什麼是'click.myevent'。請鏈接我描述的鏈接... –
@RajaprabhuAravindasamy它是[namespaced event names](http://api.jquery.com/on/#event-names) - 用於確保我們不會解除綁定其他單擊事件處理程序 –
這將刪除具有該名稱空間的所有事件。這意味着'myevent'必須是唯一的標識符。 –
能否請您試試這個:
$('#a').on('click',function(){
if(...)
{
$(this).unbind('click'); or $(this).off('click')
}
});
綁定和取消綁定是爲了向後兼容。你應該開/關分離或附加的事件處理程序
希望這有助於..
這將刪除所有'click'事件處理程序。 OP只想刪除特定的處理程序。 – toxalot
嘗試在Google中寫入相同的問題 – sanjeev