问题标签 [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 回答
4869 浏览

javascript - Javascript/jquery,获取 (x,y) 处的所有 div 位置。转发触摸?

可能重复:
如何获取位于单击点的所有元素的列表?

我知道我可以通过使用document.elementFromPoint(x,y).

问题是我需要获取包含触摸事件位置的每个 div。

如何将触摸传播到下面的元素?

我已经看到了一些 hacky 解决方案,它们在重新生成事件时显示/隐藏元素,或者使用 css 的指针事件样式,但是我不能使用这些,它们可能会导致闪烁......

下图说明了我需要做的事情:

如果紫色、绿色和蓝色框代表 div 元素,而红点是触摸位置,我需要一个返回“div3, div2, div1”的函数。

0 投票
4 回答
12043 浏览

javascript - 如何在不使用 onclick 或 onmousedown 的情况下从锚的 href 属性中停止事件传播

由于限制,即使它是我完全避免的,在某些情况下我必须使用 javascript: 在 achor 标记的 href 属性中的语法。

(说明:在我的 CMS 中,我使用富文本编辑器来允许用户更改文本元素,包括链接。在某些情况下,需要特定的 javascript: 调用,并且我从链接编辑功能中完全禁止了 onclick(以简化过程对于用户)。但是,由于其中一个链接出现在对 onclick 事件做出反应的块中,所以事情会双重触发)

像这样:

我的问题是该链接位于已经对 onclick 事件作出反应的容器内。因此我想将事件对象传递给 doSomething() 方法,这样我就可以使用 jQuery 的

方法。

然而不幸的是,似乎传递事件对象

似乎根本不起作用。Safari 什么也不说,而 Firefox 会报告ReferenceError: event is not defined

我假设是这种情况,因为 href="" 不是脚本启动属性(例如 onclick)。问题是在这种情况下,我将无法访问超出我已经做过的标签。

因此我要么需要

1.) 一种从 href 属性中将事件对象传递给 doSomething() 函数的方法

或者

2.) 一种通过其他方式在该锚点(点击后)停止事件传播的方法。

感谢您的任何建设性意见!

0 投票
1 回答
699 浏览

jquery - 在页面jquery的任意位置单击时隐藏动态创建的菜单

我在页面上有一些动态创建的菜单,每当用户单击页面上的任何位置时都需要隐藏这些菜单。如果用户单击菜单或尝试打开另一个菜单,这需要工作。

我还希望事件处理程序在完成隐藏后解除绑定。我已经找到了一个解决方案,document.on()one()我真的很想将document处理程序限制在 DOM 下方。问题是它破坏了我的代码。

任何有关优雅解决方案的帮助表示赞赏。

我想这样做的主要原因是能够防止event propagation以下情况:

传播失败DEMO

传播成功,one()clickhandler 失败 DEMO

Javascript

HTML

0 投票
1 回答
217 浏览

android - 事件向上或向下传播

当点击屏幕上的按钮时,事件如何展开?它是否以可以将事件传递给其父级的按钮开头?

还是父母首先收到事件并将其传递给其孩子,直到它到达按钮?

0 投票
3 回答
23873 浏览

javascript - JavaScript 防止在 body 元素上触摸移动,在其他元素上启用

但很简单,我想阻止 body 元素上的 touchmove 事件,但为另一个元素启用它。我可以很好地禁用...但我不确定如何在其他地方重新启用它!

我想下面的理论上是有效的,因为return true它是相反的preventDefault,但它对我不起作用。可能是因为$altNav元素 $bod

JS:

0 投票
1 回答
401 浏览

jquery - 您如何继续触发由另一个按钮触发的事件。

所以我有多个提交按钮。

比我有一个 jquery 事件

现在,当我单击继续时,我希望能够继续触发说 addItem... (我可以在该页面上有更多按钮,但我不能使用 $(this).closest("form") 因为我这样做了不知道按下了哪个项目。

我该怎么做?

0 投票
2 回答
1156 浏览

jquery - jQuery父子div激活不同的动作

我有一个包含许多组件的元素。让我们称之为元素框。现在在盒子里面我有很多不同的元素、图片、文本和按钮。

示例: http: //jsfiddle.net/roman_khrystyny​​ch /FSCRH/

HTML:

jQuery:

问题是单击按钮时,框元素也会激活其操作。本质上,我希望它是一个例外,如果我单击按钮,则不会发生常规框操作,而是会发生按钮操作。有什么建议么?

0 投票
1 回答
410 浏览

xcode - 可可忽略点击但仍然注册它们?

是否有可能在 cocoa 中有一个点击窗口(如 中_window.ignoreMouseEvents = TRUE),但仍然找出鼠标在窗口上方点击的时间?或者,不是忽略事件,注册它们,然后以某种方式转发它们,将它们传播到窗口后面的任何东西?

0 投票
1 回答
408 浏览

jquery - 折叠元素的jQuery传播问题

我有一些 jQ 逻辑依赖于 Bootstrap 的 .collapse 事件“显示”和“隐藏”,其中一个可折叠元素内部是一个具有可折叠行的表格。当显示或隐藏子折叠中的一行时,它也会触发父 Div 的显示/隐藏事件。

#carriers 中的所有内容都由 API 返回。以下是返回的示例:

这是 HTML 部分:

这是jQuery:

0 投票
1 回答
73 浏览

javascript - IE 9 无法重现的问题

基本上,我有大量的 JQ 可以在每个浏览器上运行良好,包括 IE 9/10。我今天请一位销售代表测试一些东西,他们的电脑上装有 IE 9。

当用户单击将 HTML 填充到表格中的按钮时,页面会跳转到顶部。我知道这是由事件传播引起的(My other SO Post: jQuery Dynamically Updating Fields Scrolls Page)。因此,我在适用的任何地方都返回 false(或使用 event.stopPropagation(),具体取决于。)。

但是,当这个用户加载页面时,此问题再次出现。

是否有我应该检查的设置(注意 JS 工作正常,页面只是跳转,所以禁用 JS 应该不是问题)或者我应该把它写成“没人知道你到底对浏览器做了什么,但它不能在其他地方复制”?

我只是不知所措,这是我在 JQ 或 UI 开发方面所做的最多的事情(我喜欢坚持事情的后端),所以我不确定要寻找的任何怪癖或任何东西。

如果我可以做些什么来使这个问题更加连贯,请告诉我,我会尝试的。我知道没有什么可做的,但我不知道从哪里开始。