我想在触发事件时删除事件处理程序。我无法使用one()
,因为有些情况下我不想删除事件处理程序。这就是我的意思:
$('#a').on('click',function(){
if(...)
// remove current event handler
});
编辑:我忘了提及$('#a')
附加了其他事件处理程序。我只想删除当前的那个。
答案 0 :(得分:21)
使用.off(),名称间隔为event names
$('#a').on('click.myevent', function () {
if (...)
// remove current event handler
$(this).off('click.myevent')
});
答案 1 :(得分:9)
取消绑定自身内部的事件处理程序:
$("#a").on("click", function(evt){
if (...)
{
$(this).off(evt);
}
});
答案 2 :(得分:-1)
请你试试这个:
$('#a').on('click',function(){
if(...)
{
$(this).unbind('click'); or $(this).off('click')
}
});
绑定和取消绑定是为了向后兼容。您应该打开/关闭以分离或附加事件处理程序
希望这会有所帮助..