【问题标题】:Binding jQuery handlers during the event capture phase (not event bubbling)在事件捕获阶段绑定 jQuery 处理程序(不是事件冒泡)
【发布时间】:2010-08-13 15:12:12
【问题描述】:

我希望以类似于quirksmode 中建议的方式对模糊/焦点事件实施事件委托。正如 TFA 中所解释的,模糊和焦点事件不会冒泡,因此您不能在冒泡阶段对它们使用事件委托,但您可以在捕获阶段抓取它们(man, javascript events很奇怪)。

无论如何,据我所知,jQuery 事件都适用于冒泡阶段,或者至少那是我一直使用它们的地方。我在 jQuery 文档中看不到任何关于这种或另一种方式的信息,默认情况下使用类似 $('#foo').blur(blurHandler) 的东西似乎无法捕捉到它。

为了保持一致性,我更愿意坚持使用 jQuery;有什么办法吗?

【问题讨论】:

    标签: jquery event-delegation event-capturing


    【解决方案1】:

    如果您说希望容器在后代<input> 获得焦点或模糊时触发处理程序,请尝试使用.focusin().focusout()

    来自文档:

    focusin 事件在元素或其中的任何元素获得焦点时发送到该元素。这与焦点事件的不同之处在于它支持检测父元素上的焦点事件。

    当元素或其中的任何元素失去焦点时,会向该元素发送 focusout 事件。这与 blur 事件不同,它支持检测父元素失去焦点(换句话说,它支持事件冒泡)。

    【讨论】:

    • 嗯,这很简单 :) 不知道我是怎么错过的,因为链接也明确提到了 javascript focusin/focusout 事件。幸运的是,无论如何我都在升级到 jQuery 1.4。
    猜你喜欢
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    相关资源
    最近更新 更多