是不推荐使用jquery .bind()?

Cla*_*nga 8 jquery bind

bind()不赞成使用jquery 还是可以安全使用?

我看到很多关于bind()在评论和答案中被弃用的评论如下:Jquery事件:检测对div的html /文本的更改

是否有JavaScript/jQuery DOM更改侦听器?

并且不知道使用它是否安全(无论它是好还是坏).

这里没有任何关于它被弃用的内容:https://api.jquery.com/bind/

Ath*_*ace 14

我不相信它已on被弃用,但它是附加事件的首选方法.

http://api.jquery.com/bind/

弃用意味着他们将来会删除它,但他们的文档似乎并没有这么说.

编辑:

截至jQuery 3.0 bindIS已被弃用.上述链接仍然具有相关性,但后来已更新.从他们的文档:

从jQuery 3.0开始,.bind()已被弃用.它被.on()方法取代,因为自jQuery 1.7以来将事件处理程序附加到文档,因此不鼓励使用它.

  • @克劳迪乌:你不能用 `.on` ** 或 ** `.bind` 来监听 DOM 的变化。突变事件从来没有得到很好的支持,并且已经被[突变观察者](https://developer.mozilla.org/en/docs/Web/API/MutationObserver) 所支持。MutationObserver 比旧事件得到了更好的支持。 (2认同)
  • 有很多库仍然使用绑定 (2认同)

Mar*_*hão 5

不,它不是,它们之间的区别.on.bind基本上.bind只是直接从元素调用,即$("#elem").bind(...)元素必须在调用bind函数时存在.并且.on可以在文档上"绑定"即$(document).on("click",".class",funcion(){...});,因此如果您使用.append或以其他方式动态添加元素,则该事件将是有效的.

  • @KevinB:我认为Marcus的意思是:是的,虽然你看起来的位必须存在,但是`on`可以用来捕捉尚不存在的元素上的事件.就像`$(document).on("click",".foo",...)`来捕获`class ="foo"`那些尚不存在的元素的事件.(`document`是最广泛的委托根.) (2认同)
  • @ AtheistP3ace:对,`.bind`没有提供直接授权支持(当然你可以自己动手).在v1.7之前,它是独立的:`.bind`用于直接,`..delegate`用于delgated.(还有那种'.live`的恐怖.) (2认同)