【问题标题】:How does jQuery .live() work?jQuery .live() 是如何工作的?
【发布时间】:2011-07-23 14:38:42
【问题描述】:

我在考虑性能方面

.click().live("click")

这让我想知道 .live 是如何工作的。

它是否监视 DOM 更改,当它检测到 DOM 中的更改时,它只是附加事件,它是否使用某种计时器(我不这么认为,但如果这样做非常重要,计时器会我是一个悲伤的人)

【问题讨论】:

标签: jquery


【解决方案1】:

liveclick 事件绑定到 DOM 的 document 元素。随着浏览器事件在 DOM 树中冒泡,任何匹配的元素都会触发 click 事件。

这是一篇很好的文章,解释了这一切。

http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/

【讨论】:

    【解决方案2】:
    【解决方案3】:

    .live 不会将事件附加到 dom 中的每个元素,即使 dom 发生更改也是如此。它侦听根元素的事件,例如 body 或附加了 live 的任何容器。一旦触发了内部级别元素中的事件,它就会检查目标并与活动中指定的选择器匹配,如果匹配,则引发该事件。

    【讨论】:

      【解决方案4】:

      来自.live()上的jQuery手册:

      .live() 方法能够影响尚未被处理的元素 通过使用事件委托添加到 DOM:绑定的处理程序 祖先元素负责触发的事件 它的后代。传递给 .live() 的处理程序永远不会绑定到 元素;相反, .live() 将一个特殊的处理程序绑定到 DOM 树。

      如您所见,不涉及计时器。

      【讨论】:

        【解决方案5】:

        如果您要动态地将元素添加到 DOM 并希望将点击处理程序附加到它们,您将不得不使用 livedelegate 但如果您不只是使用 click

        【讨论】:

        • 我认为OP理解何时使用每个,他只是对live的实现感到好奇
        猜你喜欢
        • 2011-02-16
        • 2017-03-23
        • 1970-01-01
        • 2012-09-06
        • 2013-05-03
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        相关资源
        最近更新 更多