问题标签 [event-bubbling]
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 Mouseover 从孩子那里冒泡
我有以下 html 设置:
它的样式是这样的,所以你不能悬停 div1 而不悬停其他 2 个 div 之一。现在我在 div1 上有一个鼠标悬停。
问题是当我从 content1 移动到 content2 时,我的 div1.mouseout 被触发,因为它们的 mouseouts 正在冒泡。
并且事件的目标,currentTarget 或relatedTarget 属性永远不会是div1,因为它永远不会直接悬停......
我一直在为此疯狂搜索,但我只能找到与我需要的相反的问题的文章和解决方案。这似乎微不足道,但我无法让它工作......
div1 的 mouseout 应该只在鼠标离开 div1 时触发。
一种可能性是在鼠标进入和鼠标离开时设置一些数据,但我相信这应该开箱即用,因为它只是一个鼠标退出......
编辑:
将 mouseout 更改为 mouseleave 并且代码有效...
jquery - jquery focusin() 和防止冒泡
更新 2:
我睡在上面,然后编写了一些示例代码来尝试进一步找出问题所在。
这是一个使用 firebug 的 console.log 的示例,向您展示哪个对象触发了 focusin 事件:
1)点击第一个链接:黄色div显示2)点击tab键:它应该进入黄色div内的链接
它这样做了,但随后它触发了 focusin 事件,并且由于某种原因,它似乎再次冒泡到红色 div,然后被告知关闭黄色 div。
这甚至在我告诉黄色 div 不要传播焦点事件之后:
然后,我仅在关注内部 div 之后尝试将 focusin 事件附加到父 div 上。
发生的情况是,在内部 div 中的第一个链接上的选项卡确实在父 div 上设置了 focusin 事件。这很好!但是,然后在 innerdiv 中的下一个链接中跳出 focusin 事件再次关闭 div。
所以,我想我仍然很难过。看来我无法阻止专注于冒泡。想法?理论?
下面是原帖...
==============================
我正在通过 onclick 事件显示一个 div。如果您单击 div 外部,我想隐藏它。为此,我在正文上绑定了一次单击事件:
在 div 本身中,我告诉它不要传播事件,以便在 div 中实际单击不会触发对主体的单击:
这按预期工作正常。
如果 div 中有一个标签,我也想隐藏 div。
我的想法是,在那种情况下,我可以在 body 上使用 focusin 事件:
同样,我不希望事件从 div 本身中冒出来,所以添加了这个:
这不起作用。在 myDiv 中更改元素内的焦点会触发 body 上的 focusin 事件。
这可能是 jQuery 中的错误吗?如果是这样,有没有更好的方法来实现这一点?
更新:
问题似乎是似乎没有办法确定 DIV 是否失去焦点,因为它永远不会有焦点。我的解决方案逻辑是查看 ELSE 的焦点是否在 div 之外(因此使用 focusin),但我遇到了 div 中的 focusin 事件似乎通过在身体上触发而冒泡的问题。
现在,我认为我的解决方案必须是在弹出窗口中添加一个 CLOSE 元素,然后让人们必须明确地触发它。但并不理想,尤其是对于键盘导航。
ruby-on-rails - 验证不会冒泡到我的其他模型
好的,我在人、用户和员工之间建立了一种关系,即所有员工都是用户,所有用户都是人。Person
是一个User
派生自它的抽象类Employee
。
现在......我有一个EmployeesController
类,create
方法如下所示:
如您所见,当我使用该:polymorphic => true
子句时,您访问超类的方式是执行类似@derived_class_variable.super_class_variable.super_super_etc
. Person
班级有一个,当validates_presence_of :first_name
它满意时,在我的表格上,一切都很好。但是,如果我省略了名字,它不会阻止员工得救。发生的情况是员工记录已保存,但人员记录未保存(因为验证)。
如何让验证错误显示在 flash 对象中?
c# - 禁用事件冒泡 c# wpf
我遇到以下问题:
当我得到两个标签时:
以及以下代码:
当我单击“第二”时,我希望它只触发“Label_MouseUp_1”。但在我的控制台中,我得到:
给我
看 不要给我看
有没有办法关闭冒泡事件?
(另外,“First”必须是可点击的,所以删除那里的事件并不能解决问题)
谢谢
jquery - 包含绑定到同一事件的 div 和锚链接
我无法弄清楚如何将 mouseout() 绑定到我的整个导航栏,包括链接。
当用户将鼠标悬停在#nav 中的链接上时,会显示一个子菜单。一切都很好。
我想要做的是当用户将鼠标悬停在整个#nav之外时淡出该子菜单。
我的鼠标移出代码:
当我将鼠标悬停在#nav 中的锚链接上时,我看到了子菜单。然后我猜 mouseout() 甚至会触发并且子菜单会淡出。无论如何,有没有#nav和其中的任何锚链接作为一个?
我会粘贴我的标记,但即使缩进 4 个空格仍然显示为呈现的 html..
javascript - 在Javascript中停止事件冒泡
我有一个像这样的html结构:
我希望onmouseout
仅从主 div 触发事件,而不是 div 中的“a”或“ul”或“li”标签!
我的onmouseout
功能如下:
有人可以告诉我如何阻止事件冒泡吗?我尝试了stopPropogatio
其他网站上提供的解决方案(等),但我不确定如何在这种情况下实施它们。
任何帮助将不胜感激。
jquery - 动画查询冒泡 - 使用 slideToggle 时如何正确处理?
我需要以下问题的答案...我在使用 slideToggle 时遇到问题我无法使用 .stop() 处理它的动画查询,但我可以使用 .stop(true,true) 处理它,但它削减了我的动画。我想在没有任何插件的情况下顺利处理它,例如:我希望它等到动画完成。
javascript - 如果你删除了一个 DOM 元素,任何以该元素开始的事件是否会继续冒泡?
如果我删除用于启动事件气泡的 DOM 元素,或者其子元素启动了事件气泡,我应该期待什么行为 - 如果元素被删除,它会继续冒泡吗?
例如 - 假设您有一个表格,并且想要检测表格单元格上的点击事件。另一段 JS 执行了一个 AJAX 请求,一旦请求完成,该请求最终将完全替换表。
如果我单击表格,并且在表格被成功完成的 AJAX 请求替换后会立即发生什么?我问是因为我看到一些点击事件似乎没有冒泡的行为 - 但很难复制。
我正在表的父元素上观看事件(而不是将事件附加到每个 TD),但有时似乎无法到达。
编辑:再次遇到这个问题,终于找到了它的根源。根本不是事件冒泡问题!有关详细信息,请参阅下面的答案。
silverlight - Silverlight 中鼠标事件的全局应用程序挂钩
有没有办法注册全局事件处理程序以在 Silverlight 应用程序中捕获鼠标事件?我想避免订阅每个 FrameworkElement 的鼠标事件处理程序并找到更优雅的解决方案(冒泡事件)。谢谢