问题标签 [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 投票
2 回答
1012 浏览

backbone.js - 骨干delegateEvents没有冒泡/传播

Backbone 中事件传播的奇怪问题。大多数人问如何停止事件传播,但我正在努力让我的事件传播!

这里我有两个 View 对象。MainView 包含 Item 视图并侦听单击事件以调用 run():

项目视图对象也会监听自己的点击事件来切换开/关行为:

问题是当单击 Item 时 MainView.run() 没有被触发,而 Item.toggle() 有一个 click 事件。

但是,如果我删除 Item.toggle() 单击事件,MainView.run()触发。让我得出这样的结论,即事件以某种方式被迫停止传播,超出了我的控制。

我怎么解决这个问题?我是否遗漏了一些明显的东西,或者这是不可避免的?

感谢您的任何和所有建议和答案:)。

0 投票
12 回答
107166 浏览

javascript - 单击链接后关闭 Bootstrap 下拉菜单

我在下面有一个引导下拉菜单。它有一个链接到一个 knockout.js 绑定,它返回 false 因为我不希望将 # 标记发送到浏览器 URL。但是,当我单击链接时,这样做不会关闭下拉菜单。有什么办法吗?

HTML

knockut.js 绑定

0 投票
0 回答
47 浏览

jquery - jQuery 仅在原生事件之后执行 jQuery 事件

我有一个功能

我只想在 loadPage 函数完成执行后触发警报。我该怎么做呢?

0 投票
2 回答
3848 浏览

javascript - 触发子元素的 onclick 事件,而不是父元素的

我有一些嵌套元素,每个元素都有一个 onclick 事件。在大多数情况下,我希望在用户单击子项时触发这两个事件(父事件和子事件都被触发 - 默认行为)。但是,至少在一种情况下,我想触发孩子的 onclick 事件(来自 javascript,而不是用户的点击),而不是父母的。如何防止它触发父事件?

在此处输入图像描述

我的情况是:

用户点击 A: A 的 onclick 触发。
用户点击 B: B 的 onclick 触发,A 的 onclick 也触发
手动触发 B 的点击: B 触发,A 没有(这个是问题)

0 投票
5 回答
8863 浏览

javascript - 防止 mCustomScrollbar 中的滚动事件传播

我正在使用jQuery 自定义内容滚动条在 div 元素上创建自定义滚动条。当在 div 内滚动并到达 div 的底端时,页面将开始滚动。有没有办法防止滚动事件传播?

我创建了一个http://jsfiddle.net/7CPv5/来说明这个问题。只需调整浏览器的大小以创建一个垂直滚动条并开始在“Hello World”div 内滚动。我这样调用插件:

0 投票
1 回答
1418 浏览

javascript - 为什么单击嵌套元素不会通过单击绑定冒泡到其父级?

我有这个 HTML:

和这个绑定:

奇怪的是,如果我点击h1p,我的错误日志,而我期待点击冒泡到链接元素。

问题:
如果单击嵌套在具有单击处理程序的元素中的元素,正常行为是什么?为什么我的点击没有冒泡?

谢谢!

0 投票
1 回答
889 浏览

touch - VideoJS后帧播放按钮在模态和固定页脚后面的触摸触发

我有一个网站,我在页面中嵌入了 videojs 视频。同样在页面上,我有一个固定的页脚,有时还会在单击链接时出现一个模态窗口覆盖。一切都在桌面上运行良好,但在移动设备上,当视频位于固定页脚后面或模式后面时,.vjs-big-play-button 上的触摸事件会触发。

我以前处理过这个问题,我认为解决了它,但我似乎无法弄清楚如何防止它。有没有人遇到过这个。在我的互联网研究中找到解决方案的运气并不好:)

谢谢

戴夫

0 投票
2 回答
65 浏览

javascript - .on() .off() event bubbling issue (so confused...)

First let me say this has caused me hours of agony, and I've tried my best to find resources and grasp why this is happening.

  1. I have a file browser that works off AJAX.
  2. When I load a new directory, I have to re-initialize event handlers
  3. When I change directories, it stacks.

So if I go to say files/../files/.. to get back to the root (twice), it fires 4 times.

I have tried unbinding with .off(), I've tried restricting with .one(), I've tried resetting ALL binds with $(document).find('*').off() and with specific events, I have tried e.stopPropagation();.

Nothing seems to work. This is driving me nuts. If I don't re-initialize the system, the new content loaded via AJAX does not receive the binds. If I do, it stacks. Please help!

0 投票
0 回答
117 浏览

jquery - Chrome 34.0.1847.137 的问题和 jquery 中的点击事件传播

一天中大部分时间都在研究一个问题,想知道是否有其他开发人员在 Chrome 上遇到过这个问题。

早些时候发布了这个问题(Chrome 在立即购买按钮上触发了双重操作),但经过进一步审查,似乎该错误可能与 Chrome 相关。

我们的产品页面上有此代码已有 2 年了

从今天早上开始,任何使用最新版 Chrome 并在购物车中添加 1 件产品的人都将获得 2 的价值。

如果跨度标签被删除,它会增加一个值 1,如果它们在那里,它会以某种方式触发立即购买功能两次。

我进入了 Chrome 开发工具,这是代码示例

我可能需要在函数中调用 event.stoppropagation() 来停止多次点击事件,但这会破坏拥有“立即购买”按钮的对象。

令我困惑的是删除跨度标签似乎可以解决问题。但我不是设计师,所以不确定我是否能解决这个问题。

有人有什么想法吗?

0 投票
3 回答
1624 浏览

javascript - 不同事件的 stopPropagation()

如何change在不触发click其容器上的事件的情况下侦听复选框上的事件?

我想触发复选框change事件的操作,但我不希望它冒泡到click标签上的事件。

http://jsfiddle.net/r49PA/

有任何想法吗?谢谢!