jquery - 将 jQuery 升级到 3.0 : rewrite bind() to on() & unbind() to off()

标签 jquery

bind() 和 unbind() 在 jQuery 3.0.0 中已弃用。 jQuery Upgrade guide说 API 文档解释了如何使用 on()off() 重写它们,但我找不到它在哪里解释。

我们在应用程序中有很多已弃用的方法的用法,但大多数都已升级得很好,但有两种情况不清楚:

  1. Bind 有 bool 参数 preventBubble 参数,在某些情况下我们传递 false。如何使用 on() 实现相同的效果 (preventBubble=false)?
  2. 我们很少使用取消绑定(bind),即调用unbind(eventName, functionHandler)off() 需要选择器作为第二个参数才能传递 functionHandler。如何使用 off() 重写它?

最佳答案

有两种方法可以阻止事件冒泡。

从事件处理程序返回 false 将自动调用 event.stopPropagation() 和 event.preventDefault()。

或者,可能更有用的是在事件处理程序中调用 event.stopImmediatePropagation()

对于.off(),您只能传递两个参数,第二个参数是处理函数。 JQ 将适本地分配并将 undefined 分配给选择器参数。这可能有效也可能无效,具体取决于您指定on的方式。

您可能还想研究命名空间事件,因为它可以简化指定要删除的事件的过程。例如(来自文档)

// Delegate events under the ".validator" namespace
$( "form" ).on( "click.validator", "button", validate );

// Remove event handlers in the ".validator" namespace
$( "form" ).off( ".validator" );

关于jquery - 将 jQuery 升级到 3.0 : rewrite bind() to on() & unbind() to off(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38276594/

相关文章:

javascript - 获取最新的 feed 并放在顶部

javascript - 用户单击删除按钮时如何获取当前(添加)按钮

jquery - 魔线导航

javascript - 在 jQuery 中用户交互后逐个迭代 Python 提供的数组?

javascript - 通过 css+javascript 添加/删除阴影

javascript - jQuery 中什么更快?

javascript - Jquery 函数附加变量

jquery new div fadIn 效果通过重新加载一个div

javascript - jQuery 问题 : add class/remove class nested inside show/hide

javascript - 使用 jQuery select2 设置多个值