将.off与.click结合使用有什么用途或区别?
.off
.click
$('#link').off('click').on('click',function(){});
与
$('#link').on('click',function(){});
把它们结合起来有什么好处?
ekqde3dh1#
这将添加一个新的click事件处理程序:
click
$('#link').on('click', function(){});
这将删除所有附加到.on()的现有click事件处理程序(如果有),然后添加新的click事件处理程序:
.on()
$('#link').off('click').on('click', function(){});
slwdgvem2#
从jquery文档中The .off()方法移除附加了.on的事件处理程序()。有关详细信息,请参阅该页上关于委托事件和直接绑定事件的讨论。不带参数的()删除所有附加到元素的处理程序。通过提供事件名称、命名空间、选择器或处理程序函数名称的组合,可以在元素上删除特定的事件处理程序。当给定多个过滤参数时,提供的所有参数必须匹配才能删除事件处理程序。在你的问题中
它将简单地删除任何以前附加到事件的事件处理程序并创建一个新的。
xghobddn3#
当我们知道没有其他的click函数已经绑定到这个元素,或者即使另一个click函数是一个bind,那么这并不妨碍我们的click函数时,我们使用$('#link').on('click',function(){});。我们使用.off从这个元素的所有地方取消绑定(停止)click功能,然后我们使用.on click只绑定我们的click功能。
3条答案
按热度按时间ekqde3dh1#
这将添加一个新的
click
事件处理程序:这将删除所有附加到
.on()
的现有click
事件处理程序(如果有),然后添加新的click
事件处理程序:slwdgvem2#
从jquery文档中
The .off()方法移除附加了.on的事件处理程序()。有关详细信息,请参阅该页上关于委托事件和直接绑定事件的讨论。不带参数的()删除所有附加到元素的处理程序。通过提供事件名称、命名空间、选择器或处理程序函数名称的组合,可以在元素上删除特定的事件处理程序。当给定多个过滤参数时,提供的所有参数必须匹配才能删除事件处理程序。
在你的问题中
它将简单地删除任何以前附加到事件的事件处理程序并创建一个新的。
xghobddn3#
当我们知道没有其他的click函数已经绑定到这个元素,或者即使另一个click函数是一个bind,那么这并不妨碍我们的click函数时,我们使用
$('#link').on('click',function(){});
。我们使用.off从这个元素的所有地方取消绑定(停止)click功能,然后我们使用.on click只绑定我们的click功能。