问题标签 [event-propagation]

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 回答
4575 浏览

events - QML - 当我不接受鼠标按下事件时无法获得鼠标释放事件

我想将我的 onPressed 事件分派给我的 QML 树中的后续对象,(我已指示 mouse.accepted = false 和propagateComposedEvents: true )但我想保持 onreleased 事件在顶级元素上工作。这里的代码:

我期望看到的:

qml: R1 按下 qml: R2 按下 qml: R1 释放 qml: R2 释放

我得到什么:

qml: R1 按下 qml: R2 按下 qml: R2 释放

我该如何解决?

在此先感谢您的帮助 。

0 投票
1 回答
118 浏览

qt - 事件如何传播?

我有一个主窗口。它有一个中央小部件和一个停靠的树小部件。右键单击树项,弹出上下文菜单。右键单击树中的某个位置,但在菜单之外,会生成一个鼠标事件。鼠标事件如何传播?从菜单开始?接着 ...?

0 投票
1 回答
3872 浏览

javascript - 需要/首选事件捕获的真实示例?

DOM 方法支持第三个可选的addEventListener布尔参数 (useCapture) 来指示函数是否应该使用事件冒泡或事件捕获作为传播方法。在本文中很好地展示了差异(单击示例和查看代码)。

从 SO 和博客文章的其他问题中,我得出结论,事件冒泡是首选,主要是因为 IE8- 不支持它。

假设我只需要支持 IE9+,在什么情况下事件捕获比事件冒泡更必要或更受欢迎?换句话说,在什么情况下让事件先在最外面的元素上执行,然后在最里面的元素上执行会更好?我正在寻找一个简单的真实世界示例来演示事件捕获的使用...

0 投票
1 回答
2549 浏览

ember.js - 如何在回调函数中冒泡 Ember 操作?

我有一个 Ember 应用程序,我正在使用一个动作来应用 CSS 动画。动画完成后,我想将动作从控制器冒泡到我的路由以处理更多功能。

我知道,如果我return: true;这样做,动作就会冒泡,如此所述。

这是我的控制器的样子:

如果我在回调中将某些内容记录到我的控制台,我animationend可以看到它正在工作,如果我移出return: true;回调,则操作会成功冒泡。但是,在回调内部返回 true 不起作用。

我错过了什么?

0 投票
1 回答
260 浏览

javascript - Javascript 事件传播未按预期工作

为什么事件在 2 秒后没有触发?(它从不开火)

0 投票
1 回答
2919 浏览

javascript - 如何使用 jQuery 延迟事件传播

我想在用户提交表单之后但在他离开页面之前显示一条注释。

目前我正在使用这个(简化的示例代码):

这有效,但似乎并不好。有没有其他方法,比如函数$.delayPropagation(2000);

PS:笔记覆盖全屏,在此期间用户将无法再次提交。

0 投票
1 回答
198 浏览

jquery - IE8 jQuery propagation - Click anywhere on screen activates scroll

This jQuery code works great on all browsers except IE8. What happens is that when I click anywhere on a page in IE8, whether on a link, a div or just in the white space, it will activate the scroll event. I think it is a propagation problem, and I have nailed it down to a specific chunk of jQuery (see comments in jQuery below), but I'm not sure how to change it so that it works correctly in IE8. It should obviously only scroll when the element chosen is clicked.

jQuery:

HTML

0 投票
1 回答
942 浏览

javascript - 如何使用hammer.js 2 获得正确的事件传播?

我在有两个hammerjs实例来监听tap事件的情况下使用Hammer.js 2.0.4:在一个父div元素中,一个在子元素中。我想在孩子处理时停止事件传播。但是,hammer.js 2 不支持这一点。

在下面的示例中,我希望tap子事件首先触发,然后是父事件(从子事件到父事件冒泡)。相反,它看起来像第一个创建的hammer.js实例tap的事件首先触发。

试试下面的例子(也在 jsbin 上):

任何想法如何在hammer.js中获得正确的事件传播?

0 投票
1 回答
190 浏览

javascript - jQuery '.click(callback)' 阻止默认事件

我试图防止双击表单按钮,从而禁用该元素几秒钟。

它成功地启用/禁用,但.click()功能的使用阻止(自动?O_o)事件的传播,并且页面不遵循表单操作属性中的链接。

注意我正在尝试将行为添加到以前工作正常的表单按钮(发布到aciton链接)。启用/禁用也可以完美地工作(不管我在修改上面的代码时可能犯的最终错误)。

PS - 任何解决方案都必须是跨浏览器并与 IE8 兼容。

0 投票
5 回答
21104 浏览

javascript - AngularJS: How to stop event propagation from ng-click?

I have directive that does something like so:

yes, it's necessary to do jQuery-way binding for this case.

And now I want to stop this event(click) propagation if some condition met.

Tried to do:

but it did not help.

here fiddle for example - http://jsfiddle.net/STEVER/5bfkbh7u/