问题标签 [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.
backbone.js - 骨干delegateEvents没有冒泡/传播
Backbone 中事件传播的奇怪问题。大多数人问如何停止事件传播,但我正在努力让我的事件传播!
这里我有两个 View 对象。MainView 包含 Item 视图并侦听单击事件以调用 run():
项目视图对象也会监听自己的点击事件来切换开/关行为:
问题是当单击 Item 时 MainView.run() 没有被触发,而 Item.toggle() 有一个 click 事件。
但是,如果我删除 Item.toggle() 单击事件,MainView.run()会触发。让我得出这样的结论,即事件以某种方式被迫停止传播,超出了我的控制。
我怎么解决这个问题?我是否遗漏了一些明显的东西,或者这是不可避免的?
感谢您的任何和所有建议和答案:)。
javascript - 单击链接后关闭 Bootstrap 下拉菜单
我在下面有一个引导下拉菜单。它有一个链接到一个 knockout.js 绑定,它返回 false 因为我不希望将 # 标记发送到浏览器 URL。但是,当我单击链接时,这样做不会关闭下拉菜单。有什么办法吗?
HTML
knockut.js 绑定
jquery - jQuery 仅在原生事件之后执行 jQuery 事件
我有一个功能
我只想在 loadPage 函数完成执行后触发警报。我该怎么做呢?
javascript - 触发子元素的 onclick 事件,而不是父元素的
我有一些嵌套元素,每个元素都有一个 onclick 事件。在大多数情况下,我希望在用户单击子项时触发这两个事件(父事件和子事件都被触发 - 默认行为)。但是,至少在一种情况下,我想触发孩子的 onclick 事件(来自 javascript,而不是用户的点击),而不是父母的。如何防止它触发父事件?
我的情况是:
用户点击 A: A 的 onclick 触发。
用户点击 B: B 的 onclick 触发,A 的 onclick 也触发
手动触发 B 的点击: B 触发,A 没有(这个是问题)
javascript - 防止 mCustomScrollbar 中的滚动事件传播
我正在使用jQuery 自定义内容滚动条在 div 元素上创建自定义滚动条。当在 div 内滚动并到达 div 的底端时,页面将开始滚动。有没有办法防止滚动事件传播?
我创建了一个http://jsfiddle.net/7CPv5/来说明这个问题。只需调整浏览器的大小以创建一个垂直滚动条并开始在“Hello World”div 内滚动。我这样调用插件:
javascript - 为什么单击嵌套元素不会通过单击绑定冒泡到其父级?
我有这个 HTML:
和这个绑定:
奇怪的是,如果我点击h1
或p
,我的错误日志,而我期待点击冒泡到链接元素。
问题:
如果单击嵌套在具有单击处理程序的元素中的元素,正常行为是什么?为什么我的点击没有冒泡?
谢谢!
touch - VideoJS后帧播放按钮在模态和固定页脚后面的触摸触发
我有一个网站,我在页面中嵌入了 videojs 视频。同样在页面上,我有一个固定的页脚,有时还会在单击链接时出现一个模态窗口覆盖。一切都在桌面上运行良好,但在移动设备上,当视频位于固定页脚后面或模式后面时,.vjs-big-play-button 上的触摸事件会触发。
我以前处理过这个问题,我认为解决了它,但我似乎无法弄清楚如何防止它。有没有人遇到过这个。在我的互联网研究中找到解决方案的运气并不好:)
谢谢
戴夫
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.
- I have a file browser that works off AJAX.
- When I load a new directory, I have to re-initialize event handlers
- 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!
jquery - Chrome 34.0.1847.137 的问题和 jquery 中的点击事件传播
一天中大部分时间都在研究一个问题,想知道是否有其他开发人员在 Chrome 上遇到过这个问题。
早些时候发布了这个问题(Chrome 在立即购买按钮上触发了双重操作),但经过进一步审查,似乎该错误可能与 Chrome 相关。
我们的产品页面上有此代码已有 2 年了
从今天早上开始,任何使用最新版 Chrome 并在购物车中添加 1 件产品的人都将获得 2 的价值。
如果跨度标签被删除,它会增加一个值 1,如果它们在那里,它会以某种方式触发立即购买功能两次。
我进入了 Chrome 开发工具,这是代码示例
我可能需要在函数中调用 event.stoppropagation() 来停止多次点击事件,但这会破坏拥有“立即购买”按钮的对象。
令我困惑的是删除跨度标签似乎可以解决问题。但我不是设计师,所以不确定我是否能解决这个问题。
有人有什么想法吗?
javascript - 不同事件的 stopPropagation()
如何change
在不触发click
其容器上的事件的情况下侦听复选框上的事件?
我想触发复选框change
事件的操作,但我不希望它冒泡到click
标签上的事件。
有任何想法吗?谢谢!