代码之家  ›  专栏  ›  技术社区  ›  Gunther Schadow

为什么xforms select和xforms deselect元素冒泡?

  •  1
  • Gunther Schadow  · 技术社区  · 6 年前

    根据 XForms specification

    根据 DOM Level 2 Event Specification “气泡”事件意味着与事件分派目标的祖先元素相关联的此事件的处理程序也将接收此事件。

    对于指定为“bubbles”的事件,这意味着xf:dispatch操作无法修改bubble行为以将其限制到目标。

    我不明白这么多xforms事件的好处是什么。例如,xforms select和xforms deselect。它们适用于xf:item(属于xf:select*)和xf:case(属于xf:switch,即用于带制表符的表单)。

    这似乎没有道理。

    事实上,xforms node attached是正确的:我们真的想具体说明哪个表单元素连接了节点。但除此之外,据说大多数事件都是泡沫。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kaitsu    6 年前

    活动委托 :

    this jQuery doc page )

    总的来说,这是件好事:

    • 使用较少的事件侦听器。
    • 侦听器可以侦听多个目标。
    • 在添加/删除DOM元素时,不需要删除/添加侦听器。

    似乎在HTML世界中,事情已经朝着让一切都冒泡的方向发展。例如,旧的 focus 事件没有泡沫,新的 focusin 事件气泡。

    现在的情况是 xforms-select 具体地说,您的问题是,您不能区分将此事件发送给 xf:case xf:select . 这可能意味着XForms不应该为这两个场景设置一个事件,或者应该有足够的事件上下文信息来区分这两个场景。我不认为这是一个不让事件泡沫的理由。