问题标签 [event-capturing]

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

javascript - 使用 javascript 冒泡/捕获检测中间节点

我需要使用事件委托在内部捕获带有图像的锚节点。

event.target始终是img

如何检查单击是否是在具有类 .link 的节点上进行的?

更新:要清楚这里是jQuery 的一个例子

当我使用 jQuery.on() 时,回调函数中的属性中有a节点,而不是节点。使用纯 JS,我只能确定初始目标。 thisimg

0 投票
2 回答
1418 浏览

javascript - 带有嵌套元素的根元素上的事件冒泡和捕获

我正在尝试从根元素中捕获每张卡上的 id。但是,每次单击嵌套元素时,都会得到空字符串。但是,我在收听根元素卡时想要包装卡中的 id。我想同时处理冒泡和捕获情况,因为这是更大结构的一部分。我只想要 vanilla js 和 Javascript 的答案,请不要使用 css。

0 投票
0 回答
310 浏览

reactjs - 反应“捕获”事件处理程序总是在本机非捕获处理程序之前触发吗?

这个讨论线程中,Sophie Alpert谈到了 React 中的事件处理:

我们不保证 React 事件和原生事件之间的事件顺序。

但是,我很好奇假设 React “捕获”事件是否安全,例如onClickCapture总是在任何本机非捕获事件之前触发。

例如,我可以假设单击 React 渲染的 divMyComponent总是会在记录“单击窗口”之前记录“单击 div”吗?

0 投票
2 回答
727 浏览

c# - C# - 如何在不捕获 Shift 键的情况下捕获 Shift+Del 组合事件?

我有一个文本框和一个列表框。Shift必须清除列表框,Shift+Del组合必须清除文本框。

这是我的代码。

它显然是错误的,因为列表框在关闭时总是被清除Shift。我需要能够通过按Shift+来清除文本框,Del而不是当时清除列表框。

我必须只使用ShiftDel键,而不能使用其他键。

那我该怎么办?

0 投票
2 回答
3865 浏览

javascript - OnDrop 事件目标是当放置在子级上时的子级,即使在使用捕获阶段时也是如此

我试图让我的拖放在 JavaScript 中正常工作,而无需显式扫描父元素或其他 ID、类循环和其他 hacky 魔法。

现在,当我拖动元素池中的一个元素并将其拖动到灰色区域时,该元素被复制到放置区域(到目前为止一切都正确)。我基本上是复制拖动元素的 HTML,清除放置区域(目标)并将新元素添加到其中。

当您在放置区域中已经有一些子元素并将其拖到子元素上时,问题就开始了。那么 drop 事件中的目标是子元素,而不是事件附加到的 div。这会导致拖动的元素清除并将其自身复制到子容器中,而不是放置容器中。

预期的结果应该是,无论您将其放在子容器上还是直接放在主放置容器上,目标都应该始终是父节点,因为我正在使用事件捕获模式。

这是我在 JS Fiddle 中的示例代码。我正在使用带有捕获的事件侦听器,但它似乎无论如何都在进行冒泡阶段并且忽略了捕获阶段。为什么?

这样做的正确方法是什么?

原始JSFiddle 链接。

0 投票
1 回答
2888 浏览

react-native - 在 react-native webview 中为触摸事件创建一个洞

我们正在尝试重复与此插件相同的事情:https ://github.com/mapsplugin/cordova-plugin-googlemaps/blob/master/README.md (此插件如何工作)但使用 react-native + 地图框 gl(本机)。

这个想法很简单:webview 和 mapview 是“兄弟姐妹”,webview 在 mapview 之上,webview 的一部分是透明的,mapview 显示在它下面。我们希望在这个透明区域中发生的任何触摸事件都不会被 webview 和气泡/mapview 捕获,这样您就可以触摸/拖动/缩放地图。

简单地说:我们希望webview 的一部分(不是全部)不捕获事件,而是允许底层视图捕获它们。

看起来反应原生中有一些方法允许这样做(有条件地控制事件捕获)(https://facebook.github.io/react-native/docs/view.html#onstartshouldsetrespondercapture)但我们找不到任何测试它的工作示例,我们无法完全理解所提供的文档(我们甚至无法理解是否应该为父视图或子视图指定此回调)。

所以基本上我们只需要一些 react-native 的工具来有条件地捕获触摸事件。

任何人都可以帮助我们吗?map/webview 的例子可能太复杂了,在两个视图中对事件的任何条件捕获应该会有很大帮助。

0 投票
2 回答
39 浏览

javascript - 当事件附加到文档时,获取 elem 的 id

需要注意的点:

  • 整个文件content editable
  • 身体有一个input event附着在它上面
  • 我需要获取已更改的特定元素的 id
  • 只允许使用原生 Javascript

例如:如果我换成TomPaul,我应该得到m1id。

问题e.target返回正文元素而不是特定元素(div#m1

0 投票
1 回答
53 浏览

android - 第一个按钮按下没有被听众捕捉到

第一次按下“编辑信息”按钮时没有任何反应,但随后它工作正常。有很多类似的问题,我已经通过并尝试了我所能做的一切,但没有成功。

(*) 从这个问题Matěj Hrazdíra 建议添加 OnTouchListner 但这样做会使按钮永远不会切换回来。

这是activity_main.xml

0 投票
1 回答
79 浏览

jquery - 在日期更改时触发文本框气泡事件

我有一张桌子。单击最后一行元素时,我正在为表格生成新行。我将 Onclick 函数绑定到td.

现在我在 td 中有 datetimepicker。我通过单击日期选择器并保存相同的日期来解决绑定日期问题,因为它触发了 td onclick 功能。

我想要的是先绑定日期,然后通过输入的 onchange 函数保存日期,然后创建行。

任何帮助表示赞赏。

更新 这是我的生成行函数:

现在,问题是它只涉及生成行功能,但没有实现逻辑。我猜它没有捕捉到它。你会帮忙吗?

我想要的是从日期选择器中选择日期,同时也生成行。

0 投票
5 回答
7750 浏览

javascript - 角度点击事件:如何选择元素中的复选框?

在我的 Angular 应用程序中,我有以下菜单:

在此处输入图像描述

如您所见,我有项目(即a元素)以及每个项目中的复选框和标签:

我应该如何添加(click)到每个项目以正确处理事件捕获,所以如果用户单击标签或整个项目,我会选择相关的复选框?

...或者你知道更好的方法来达到我的意思吗?