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

javascript - 当内部元素滚动位置达到顶部/底部时防止父元素滚动?

我有一个小“浮动工具箱” - 一个带有position:fixed; overflow:auto. 工作得很好。

但是当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素“接管”“滚动请求”:工具箱后面的文档滚动。
- 这很烦人,而不是用户“要求”的。

我正在使用 jQuery,并认为我可以使用 event.stoppropagation() 来阻止这种行为:
$("#toolBox").scroll( function(event){ event.stoppropagation() });

它确实进入了函数,但仍然会发生传播(文档滚动)
- 在 SO(和谷歌)上搜索这个主题非常困难,所以我不得不问:
如何防止滚动事件的传播/冒泡?

编辑:
感谢amustill的工作解决方案(以及此处的鼠标滚轮插件Brandon Aaron:
https ://github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js

0 投票
1 回答
2715 浏览

android - 触摸事件的传播


我有一些ListView。每个列表元素都是使用如下布局构造的:

some_selector.xml看起来像这样:

现在,当用户按下整行时,每个 TextView 也被按下(不是真正按下 - 没有生成 onClick 事件,但是 TextViews 根据其选择器更改其背景)。有什么想法告诉系统不要将触摸事件从父视图传播到子视图吗?

0 投票
1 回答
765 浏览

actionscript-3 - AS3:自定义事件传播

我正在尝试将一系列外部加载的 swf 的投影仪放在一起,我的一般问题将尽可能简短。

如果加载到的外部 swf ctrl(在创作期间放置在舞台上的 MovieClip 实例)在其第一帧和最后一帧中:

那么 -是否应该在 ctrl 容器中“听到”这些事件?

目前我似乎只能在加载的内容中收听这些事件,而不是“更高”,我的意思是 - 如果我在加载器完整监听器中说:

然后听到事件,但当我说:

后者似乎更强大,因此我正在努力让它发挥作用,但我想我已经错过了一些课程;-) 有人经历过吗?我的方法是正确的还是应该走另一条路?

大家加油。

0 投票
1 回答
2879 浏览

jquery - 如何防止 Enter 按键触发按钮单击?

我有以下代码片段。

基本上,它检查输入然后调用一个函数。

我唯一的问题是 IE8 也点击了一个按钮。当我点击进入。我用所有其他浏览器检查过它,但只有 IE8 这样做。

有什么办法可以预防吗?

0 投票
2 回答
938 浏览

jquery - IE 事件传播与 jQuery 自动完成/jScrollPane 的行为不符

我有一个使用 ajax 自动完成的文本输入字段。结果显示在带有垂直滚动条的 jScrollPane 面板中。

我遇到了一个特定于 IE 的问题,当用户单击 jscrollPane 下拉列表的滚动条时会触发输入字段的模糊事件(滚动条的向上和向下箭头生成为如下所示的锚标记)。

我的理解是 return false 应该阻止事件传播,我期望这就是为什么mousedownclick事件都为锚标签返回 false 的原因。这在 Firefox 和 Chrome 中运行良好,但在 IE 中不行。

虽然下面没有显示,但我也尝试在我的活动中使用以下代码,但无济于事:

我想我的第一个问题是:

我是否应该期望停止对一种事件的传播以实际阻止其他类型的事件传播?

即,如果mousedown触发了返回 false 的事件,这会阻止触发模糊或聚焦事件吗?

如何解决此问题以确保 IE 与 Firefox 和 Chrome 一样工作?

0 投票
1 回答
1895 浏览

javascript - 事件传播和多个事件处理程序

好吧,我很困惑。我有一个全局点击事件处理程序document。在页面上我有几个链接。每个链接都由相同的单击事件处理程序处理,除其他外,该处理程序可防止事件冒泡到文档级别并防止链接执行。在这些链接中,有一个特定的点击处理程序应该做它的事情,然后将事件传递给链接的通用点击事件。但事实并非如此。

如何让较低的事件触发并达到较高的事件,然后取消该事件?

看看我在这里的意思

0 投票
1 回答
872 浏览

javascript - Javascript:stopPropagation 只在第一次工作?

我的按钮仅在第一次被点击时被“点击”。每次之后,click 事件都会立即传播到父级的 onclick。这是按钮的点击:

和 HTML 大纲:

我怎样才能让活动每次都成功,而不仅仅是第一次?谢谢!

0 投票
1 回答
412 浏览

javascript - 位于选择停止点击传播顶部的水印标签

我为下拉菜单创建了一个水印/提示解决方案,我绝对将标签放置在选择元素的顶部。

不幸的是,当用户点击标签所在的位置时,下拉菜单不会打开 - 显然点击被标签阻止了。有什么办法可以让用户点击标签时打开下拉菜单?我知道您无法通过 javascript 打开下拉列表,但是您可以在点击触发时执行隐藏标签之类的操作吗?

编辑:像 gmail 在其下拉列表中创建自定义下拉列表不是一个可行的选择。

0 投票
2 回答
634 浏览

jquery - jquery 函数仅在 IE7 中不起作用

我有以下 jquery 代码:

它适用于所有浏览器,当然除了 IE7。在 IE7 中,它无法停止传播。

我正在使用最新版本的 jquery (1.6.2),但也尝试过 1.5.2。

我真的很茫然;没有尾随逗号(我可以看到...),我找不到问题。我真的很感激一些帮助!

MTIA。

0 投票
1 回答
1687 浏览

jquery - 在 DIV 外部单击时使用 jQuery 隐藏 DIV,但允许传播事件

我已经阅读了很多其他问题,涉及如何在单击外部 div 时关闭它,但我有一个复杂的问题,因为我有其他与 .live() 绑定的元素

我想要发生的是,如果我点击页面上的其他任何地方,div 应该消失,包括如果我点击“活动”元素。当我单击该实时元素时,我希望它的处理程序正常进行。

据我所知,处理关闭 div 的基本方法是将单击侦听器附加到或 $document,但这会阻止任何其他实时事件冒泡通过上述 body/doc 处理程序。有没有解决的办法?