bind
()和unbind
()在jQuery 3.0.0中已弃用。
jQuery Upgrade guide说API文档说明了如何使用on()
&更新它们。 off()
,但我无法找到解释的地方。
我们在应用程序中有很多不赞成使用的方法,但大多数都升级得很好,但有两种情况不明确:
preventBubble
参数,在某些情况下我们传递false。如何使用preventBubble=false
on()
)
unbind(eventName, functionHandler)
的地方,我们很少使用unbind。 off()
需要选择器作为第二个参数才能传递functionHandler
。如何使用off()
?答案 0 :(得分:1)
Selector作为第二个参数是可选的,用于设置委派目标。由于这不是您bind()
的设置方式,因此不是问题
bind()
在内部使用on()
,您应该只需将bind
重命名为on
答案 1 :(得分:1)
有两种方法可以阻止事件冒泡。
从事件处理程序返回false将自动调用event.stopPropagation()和event.preventDefault()。
或者,更有用的是在事件处理程序中调用event.stopImmediatePropagation()
。
对于.off()
,您只能传递两个参数,第二个参数是处理函数。 JQ将适当地分配并将undefined
分配给selector参数。根据您指定on
的方式,这可能有效,也可能无效。
您可能还希望查看命名空间事件,因为它可以简化指定要删除的事件的确切内容。例如(来自文档)
// Delegate events under the ".validator" namespace
$( "form" ).on( "click.validator", "button", validate );
// Remove event handlers in the ".validator" namespace
$( "form" ).off( ".validator" );
答案 2 :(得分:0)
我找到了一篇描述此内容的文章,请参阅link和stackoverflow answer
$ span_rename_folder
。儿童()
。儿童(':image.inplace_cancel')
.off('单击')
.on('点击',function(){...});这将删除所选元素中的所有点击事件。