.off
与.click
结合使用有何不同?
$('#link').off('click').on('click',function(){});
Vs的
$('#link').on('click',function(){});
合并有什么好处?
答案 0 :(得分:9)
这会添加一个新的click
事件处理程序:
$('#link').on('click', function(){});
这将删除与click
附加的所有现有.on()
事件处理程序(如果有),然后添加新的click
事件处理程序:
$('#link').off('click').on('click', function(){});
答案 1 :(得分:3)
从jquery文档中,
.off()方法删除附加的事件处理程序 。上()。请参阅有关委托和直接绑定事件的讨论 该页面了解更多信息。不带参数调用.off() 删除附加到元素的所有处理程序。特定事件处理程序 可以通过提供事件名称的组合来删除元素, 名称空间,选择器或处理程序函数名称。当多个 给出了过滤参数,所提供的所有参数都必须 匹配要删除的事件处理程序。
在你的问题中,
$('#link').off('click').on('click',function(){});
它将删除附加到事件的任何先前事件处理程序并创建一个新事件。
答案 2 :(得分:1)
当我们知道没有其他点击功能已经绑定到此元素或者即使另一个点击功能是绑定时,我们使用$('#link').on('click',function(){});
,那么这不会阻碍我们的点击功能。我们使用.off从该元素的所有位置解除绑定(停止)点击功能,然后我们使用.on点击仅绑定我们的点击功能。