我想在触发事件时删除事件处理程序。我不能使用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