问题标签 [stoppropagation]

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

jquery - 在单击和关闭时切换下拉 div 的更好方法?

我目前正在使用以下代码切换下拉 div 菜单:

是否有更快/更好/更有效的方式来切换 div?这似乎是一个非常大的代码块..

0 投票
3 回答
926 浏览

jquery - 不应该返回 false 防止 jQuery on() 冒泡吗?

根据jQuery 文档

从事件处理程序返回 false 将自动调用 event.stopPropagation() 和 event.preventDefault()。也可以为处理程序传递一个 false 值作为 function(){ return false; 的简写。}。所以, $("a.disabled").on("click", false); 将事件处理程序附加到具有“已禁用”类的所有链接,以防止在单击它们时跟踪它们,并阻止事件冒泡。

所以当我创建一个点击事件时:

我希望点击不会注册,因为它没有机会传播.toggle#sidebar

我想出的唯一解释是,如果允许这种情况发生,它将使该on()功能变得毫无意义,所以在这种情况下可能会绕过它?

on()冒泡遵循什么规则?

0 投票
2 回答
3096 浏览

jquery - 即使使用 event.stopPropogation、event.preventDefault 和 return false,jQuery 也无法在返回键上停止表单提交

我刚刚使用 jquery 构建了一个自定义自动完成组件。我的问题是,当有人使用键盘上/下箭头键选择自动完成建议之一并点击返回时,即使我调用并且还返回 false,表单提交也会event.stopPropogation()发生event.preventDefault()

我已将核心功能绑定到 keyup 事件:

getResults 对返回 json 对象的服务器脚本进行 ajax 调用。getResults 伪代码如下:

最后ajax调用的成功处理程序如下:

最后,killEvent 是一个简单的函数:

因此,所有的处理程序,甚至是li对自动完成建议列表元素的点击都返回 false 并调用stopPropogationand preventDefault。但是,表单提交仍然发生!我在这里做错了什么或错过了什么。对不起,很长的帖子!

0 投票
1 回答
81 浏览

jquery - 停止 jQuery 事件函数

我昨天发布了一个问题,但遗憾的是,尽管我现在对上述代码有一个新问题,并且正在寻找一些善良的灵魂来指引我正确的方向,这样我就可以学习如何解决问题,所以我不需要再次寻求帮助。

这是脚本http://jsfiddle.net/EzYeH/10/的 jsfiddle 链接

如果事件函数收缩仍在运行,我想要实现的是停止事件函数扩展初始化。

我已经尝试使用和阅读.stopPropagation()&.stop()但无法正确实现。

提前感谢任何可以解决这个问题的人,

担。

0 投票
4 回答
34184 浏览

javascript - jQuery on() stopPropagation 不起作用?

我似乎无法让它停止传播..

参考这个jsfiddle

0 投票
1 回答
1280 浏览

javascript - jQuery单击事件停止传播无法正常工作?

我有一个画廊类型的界面,我正在尝试开始工作,我希望能够在它外部单击以关闭它,但是里面有一个 div 包含主要元素、照片和要单击的东西。但是,现在当您在 div 内部单击时它会关闭,因为它是元素中的一个子元素,当您单击它时它会关闭。

我有这样的div:

一切都通过ajax加载到剧院容器中。当您单击 .theater-wrapper 时,它应该触发事件以关闭,但是当您单击 Theater-container 时,它不应该。

这就是我试图关闭它的方式:

我有一个 jsfiddle 展示了这一点:http: //jsfiddle.net/Cs8Kq/1/

0 投票
1 回答
2564 浏览

jquery - UI手风琴标题中的jQuery ColorBox插件

首先,这就是我想要实现的目标:我有一个对象列表,其中包含图像的缩略图和一些基本信息。您可以单击图像以查看图像的大图,或在对象信息上的任何其他位置展开包含有关对象的大量额外信息的 DIV。

我结合使用了 jquery UI 手风琴和 yoxview,但是 yoxview 在几个浏览器中给我带来了极大的痛苦,我决定用 ColorBox 替换它。

现在这是问题所在,我有这个工作,但是当单击图像时,ColorBox 会按原样打开,但它也会触发手风琴,当然,它不应该。因为,例如,如果您单击打开额外信息,然后单击拇指查看放大的图像,手风琴关闭,这确实使导航和检查这些对象变得很痛苦,而不是轻而易举。

这是它的设置方式:

在准备好的文件中,我有这个:

对于彩盒:

(我使用 rel 是因为一个对象可能有多个图像,我简化了我的 html 示例)

为了确保单击图像时,我通常会使用以下代码:

但是,我已经尝试过多种方式 stopPropagation,但每次尝试都会破坏 ColorBox。大图像可以正常打开,但在窗口本身中,而不是在灯箱中。

简而言之,我知道有一个灯箱,它不像 yoxview 可以跨浏览器工作,但我有一个不需要的副作用,即单击图像会触发手风琴。

我非常感谢您在此处提供的任何帮助,以便尽管图像(链接)位于手风琴标题内,但单击它会触发 ColorBox,但不会触发手风琴本身。

干杯。

0 投票
1 回答
1184 浏览

jquery - jQuery:停止传播与 IE8

我正在使用以下代码来防止单击全屏 div,没有背景颜色、图像或不透明度。只是一个普通的 ol' div。

和 CSS

在我尝试过的浏览器(Chrome 16.0.912.77、Opera 11.61、Safari 5.0.4、Firefox 3.6.25、SeaMonkey 2.1)上运行良好。

在 IE8(64 位)上,它不适用于可点击的东西。比如链接。如果我在 IE8 上单击背景中的某个位置,它将起作用。如果我点击一个链接,链接点击仍然通过。

现在,如果我在 IE8 上指定背景颜色,它将起作用。但由于 IE 上的不透明度是一种痛苦,因此 div 将是纯色,我不希望这样。有没有办法让它在 IE8 上工作,而不指定背景颜色?

谢谢。

0 投票
5 回答
3522 浏览

jquery - jQuery父子元素点击事件

我的 HTML 看起来像这样(不幸的是它无法更改,因为它正在使用我正在使用的 CMS 呈现):

jQuery.

如果我单击标签内的任何位置,使用此代码将切换复选框。我需要的是仅在单击<div class="pledge">元素时才发生操作。我怀疑 .stopPropagation(); 会在这里帮助我,但我无法让它正常工作。

这是另一个似乎正在实现相同想法的镜头:

0 投票
4 回答
14272 浏览

javascript - 如何禁用外部元素的滚动?

我在一个也垂直滚动的页面中有一个垂直滚动的 div。

当子 div 用鼠标滚轮滚动并到达滚动条的顶部或底部时,页面(正文)开始滚动。当鼠标悬停在子 div 上时,我希望页面(正文)滚动被锁定。

这个 SO 帖子(向下滚动到选定的答案)很好地说明了这个问题。

这个 SO 问题与我的基本相同,但所选答案导致我的页面内容随着滚动条的消失和重新出现而明显水平移动。

我认为可能有一个利用 event.stopPropagation() 的解决方案,但无法使任何工作。在 ActionScript 中,这种事情可以通过在子 div 上放置一个鼠标滚轮处理程序来解决,该处理程序在事件到达 body 元素之前调用 stopPropagation()。由于 JS 和 AS 都是 ECMAScript 语言,我认为这个概念可以翻译,但它似乎不起作用。

有没有一种解决方案可以防止我的页面内容四处移动?最有可能使用 stopPropagation 而不是 CSS 修复?欢迎 JQuery 答案和纯 JS 一样。