问题标签 [event-bubbling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1091 浏览

javascript - Javascript 事件冒泡未按预期工作

做噩梦试图弄清楚事件冒泡..

完整的测试用例

据我了解,单击红色边框内的区域应触发所有 3 个事件处理程序(红色、蓝色和正文),仅触发红色和正文。

我试过改变第三个值addEventListener并改变返回值但无济于事,有什么想法吗?

0 投票
1 回答
711 浏览

apache-flex - flex 自定义事件冒泡

亲爱的 Richard Szalay,
我浏览了你关于冒泡的答案,我想更多地探索冒泡。请在下面查看我的示例

在我的自定义事件类中,我设置了 bubbling=true,cancelable=true

从之前的回答中我可以理解,冒泡只会影响 UI 组件;即使气泡参数设置为 true,从自定义类触发的事件也不会冒泡。

我的问题是当我单击“加载”(自定义组件)中的按钮时,如何防止 panelClickHandler 函数被触发?

请用很好的例子解释冒泡(比如自定义事件类)?

0 投票
0 回答
369 浏览

javascript - 捕获事件和冒泡事件之间的区别

请告诉我黑白的区别

捕获和冒泡事件。

0 投票
2 回答
2329 浏览

jquery - JQuery Validation Plugin:防止嵌套表单上的验证问题

我有一个使用验证的表单。此表格有一个用于上传照片的部分。最初,本节包含六个元素,代码如下:

我已经将一个函数绑定到photo_upload. 此函数使用以下代码将图像替换为最小形式:复制代码

因此,基本上,在单击图像后,我将在我的原始验证表单中嵌套一个新表单。现在,当我使用这个新表单并上传图片时,我收到一个错误(重复三遍)说:

这里发生了什么?我的猜测是这个

  1. 将事件气泡提交到外部表单
  2. 由于我们对该表单进行了验证,因此触发了验证,
  3. 验证试图找到触发它的表单,
  4. 由于我们没有将验证绑定到内部表单,因此它返回“未定义”

现在,我的评估是否正确?不管是不是,我该如何解决这个问题?

0 投票
1 回答
491 浏览

javascript - 在父元素上捕获事件

当点击发生时,window.event 报告树中的最低元素。例如

当您点击上面的链接并且如果您在 BODY 级别有 onclick 列表时,window.event 将报告“强”元素被点击。在同一事件中,我怎么知道父级实际上是一个“锚”标签,其 href 指向某处?即我正在寻找一种自动方式让我知道主要元素是“锚”而不是“强”元素。我显然不能做 window.event.target.parentNode.parentNode 因为这将是手动检查。可能在某个地方我可以跟随点击事件的“冒泡”。

任何人有任何线索?

0 投票
2 回答
4017 浏览

javascript - JavaScript 异常/错误处理不起作用

这可能有点难以理解。

我在对象中有一个函数:

在它调用的 try 块内:

LocalStorageManager.addImage 调用:

如果使用了过多的本地存储,localStorage.setItem 会引发错误。我想在 f_openFRHandler (第一个代码示例)中捕获该错误,但它被发送到错误控制台而不是 catch 块。我在我的 Firebug 控制台中尝试了以下代码,以确保我没有发疯,并且尽管有许多级别的函数嵌套,但它仍按预期工作:

有任何想法吗?

0 投票
1 回答
335 浏览

jquery - 为什么一本书说 DOM 事件流既有捕获又有冒泡?那么事件不会发生两次吗?

Zakas 的《Professional Javascript》一书说

1) IE 使用事件冒泡
2) Netscape 使用事件捕获
3) DOM 事件流是先捕获然后冒泡

那么,事件处理程序不会被调用两次吗?这是什么 DOM 事件流,是 DOM 2 级事件处理吗?

据我了解,以下是否属实?

a) IE 6、7、8 都使用冒泡
b) FF、Chrome、Safari、Opera 都使用捕获?
c) jQuery 通过使其“冒泡”使一切都变得相同

0 投票
1 回答
71 浏览

jquery - 在“链接”(或 div)以及父元素或祖先元素处监听事件的好例子是什么?

大多数时候,我看到代码为链接或 div 或按钮注册事件侦听器,并从那里处理所有事情。但是事件捕获和冒泡可以很好地处理后代级别的事件,然后是祖先级别的事件。但是,我们希望在 2 个不同的地方聆听的好例子是什么?

0 投票
2 回答
4324 浏览

wpf - WPF如何将事件传递给兄弟元素

我已经阅读了Button.MouseDown的帖子 ,接着我想再问 1 个问题。我的 XAML 如下:

我的cs如下:

如何将鼠标向上/向下事件从 C3 传输到 C33?基本上,我希望 1 个兄弟姐妹的所有事件也能传递给其他人。

0 投票
4 回答
1719 浏览

javascript - 即使在调用 jQuery 的 stopPropagation() 之后,单击事件处理程序也会无意中冒泡

我正在尝试为列表中“li”元素中的不同元素设置不同的委托单击处理程序。例子:

当用户单击 button1 (任何项目)时,我想获取该事件并停止传播(对于 button2 实例也是如此)。单击父 li 元素的用户将是一个不同的处理程序:

所以一个问题是,我如何为 button1 实例设置一个委托,而另一个用于 button2 实例?上例中的第二个委托在单击按钮时会触发,但 event.stopPropagation() 似乎无法正常工作,因为父 li 项的处理程序仍会被调用,

- - - 更新 - - - - - - -

还尝试调用 event.stopImmediatePropagation(),但没有效果,父处理程序仍然被调用。

谢谢