问题标签 [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.
javascript - Javascript/jquery,获取 (x,y) 处的所有 div 位置。转发触摸?
可能重复:
如何获取位于单击点的所有元素的列表?
我知道我可以通过使用document.elementFromPoint(x,y)
.
问题是我需要获取包含触摸事件位置的每个 div。
如何将触摸传播到下面的元素?
我已经看到了一些 hacky 解决方案,它们在重新生成事件时显示/隐藏元素,或者使用 css 的指针事件样式,但是我不能使用这些,它们可能会导致闪烁......
下图说明了我需要做的事情:
如果紫色、绿色和蓝色框代表 div 元素,而红点是触摸位置,我需要一个返回“div3, div2, div1”的函数。
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.) 一种通过其他方式在该锚点(点击后)停止事件传播的方法。
感谢您的任何建设性意见!
jquery - 在页面jquery的任意位置单击时隐藏动态创建的菜单
我在页面上有一些动态创建的菜单,每当用户单击页面上的任何位置时都需要隐藏这些菜单。如果用户单击菜单或尝试打开另一个菜单,这需要工作。
我还希望事件处理程序在完成隐藏后解除绑定。我已经找到了一个解决方案,document.on()
但one()
我真的很想将document
处理程序限制在 DOM 下方。问题是它破坏了我的代码。
任何有关优雅解决方案的帮助表示赞赏。
我想这样做的主要原因是能够防止event propagation
以下情况:
传播成功,one()
clickhandler 失败 DEMO
Javascript
HTML
android - 事件向上或向下传播
当点击屏幕上的按钮时,事件如何展开?它是否以可以将事件传递给其父级的按钮开头?
还是父母首先收到事件并将其传递给其孩子,直到它到达按钮?
javascript - JavaScript 防止在 body 元素上触摸移动,在其他元素上启用
但很简单,我想阻止 body 元素上的 touchmove 事件,但为另一个元素启用它。我可以很好地禁用...但我不确定如何在其他地方重新启用它!
我想下面的理论上是有效的,因为return true
它是相反的preventDefault
,但它对我不起作用。可能是因为$altNav
元素在 $bod
?
JS:
jquery - 您如何继续触发由另一个按钮触发的事件。
所以我有多个提交按钮。
比我有一个 jquery 事件
现在,当我单击继续时,我希望能够继续触发说 addItem... (我可以在该页面上有更多按钮,但我不能使用 $(this).closest("form") 因为我这样做了不知道按下了哪个项目。
我该怎么做?
jquery - jQuery父子div激活不同的动作
我有一个包含许多组件的元素。让我们称之为元素框。现在在盒子里面我有很多不同的元素、图片、文本和按钮。
示例: http: //jsfiddle.net/roman_khrystynych /FSCRH/
HTML:
jQuery:
问题是单击按钮时,框元素也会激活其操作。本质上,我希望它是一个例外,如果我单击按钮,则不会发生常规框操作,而是会发生按钮操作。有什么建议么?
xcode - 可可忽略点击但仍然注册它们?
是否有可能在 cocoa 中有一个点击窗口(如 中_window.ignoreMouseEvents = TRUE
),但仍然找出鼠标在窗口上方点击的时间?或者,不是忽略事件,注册它们,然后以某种方式转发它们,将它们传播到窗口后面的任何东西?
jquery - 折叠元素的jQuery传播问题
我有一些 jQ 逻辑依赖于 Bootstrap 的 .collapse 事件“显示”和“隐藏”,其中一个可折叠元素内部是一个具有可折叠行的表格。当显示或隐藏子折叠中的一行时,它也会触发父 Div 的显示/隐藏事件。
#carriers 中的所有内容都由 API 返回。以下是返回的示例:
这是 HTML 部分:
这是jQuery:
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 开发方面所做的最多的事情(我喜欢坚持事情的后端),所以我不确定要寻找的任何怪癖或任何东西。
如果我可以做些什么来使这个问题更加连贯,请告诉我,我会尝试的。我知道没有什么可做的,但我不知道从哪里开始。