问题标签 [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.
event-handling - jquery 实时点击事件 stopPropagation
我有一个下拉菜单,其中包含一个输入和几个按钮。当我单击其中一个按钮或其他地方时,下拉菜单应该隐藏,但在输入键时不要隐藏。我使用以下代码,它不起作用。虽然它在我使用时有效
而不是live
.
但我确实需要live
,所以有什么解决方案吗?
jquery - JQuery stopPropagation 不能防止事件冒泡
我有一个应用程序,几个列表可以堆叠在一起。列表项可以通过拖放在列表之间交换。当我将列表项放在覆盖另一个列表的列表上时,我希望最上面的列表仅用于处理放置事件。
目前我的问题是所有事件处理程序都会触发,无论我使用e.stopPropagation
,e.preventDefault
还是return false
.
非常感谢任何指导方针
jquery - 停止父事件jquery
当我单击子链接时,我想停止父事件触发。这是我的代码:
当我单击.toogleRead
它时会触发该功能,但也会切换到{corePath}/mails
页面。我想阻止它改变页面。
jquery - 在异步事件之后提交表单和调用排队事件时遇到问题
我在本地设置(使用 jquery.1.6.4)上工作,但它不适用于开发设置(jquery.1.3.2)。
考虑以下形式 -
注意validateMacros();
上面的调用。
以及以下 javascript -
加载 jquery.1.6.4 时,该函数validateMacros()
在执行完成后执行preValidateUrls()
,这是所需的。
但是当 jquery.1.3.2 加载时,validateMacros()
根本不执行并且表单只是提交。
我如何使它在两个版本上都工作。我究竟做错了什么?
jquery - jQuery:mouseenter/mouseleave 甚至停止传播
我在无序列表上的 jquery 中使用 mouseenter 和 mouseleave 事件,以<li>
在鼠标经过它们时显示一些图像。该列表通常如下所示:
注意:我知道它可能很难阅读,但我尽我所能使其尽可能易读。
如您所见,它只是一个用于展开/折叠树的树,每个项目都标有“treeItem”类。我需要保留这个类,因为它是所有这些项目共享的公共类,当鼠标经过它们时需要显示图像,我决定将我的事件处理程序绑定到它。
需要在 mouseenter/mouseleave 上显示/隐藏的图像是每个项目的第二个(带有 src="img/cross.png" 的那个)。我用这个脚本很容易做到这一点:
我的问题是,当一个项目展开时(即“类别 1”被展开,“子类别 1 1”和“子类别 1 2”现在显示)并且我用鼠标悬停任何子类别,这些子类别'图像将按要求显示,但父类别(即“类别 1”)的图像不会隐藏,因为我仍在悬停它......
我尝试使用 e.stopPropagation(); 但它并没有做得更好..
任何人都知道一种方法来解决这个问题并在我悬停它的一些内容时在一个元素上触发 mouseleave 吗?
您可以查看http://api.jquery.com/mouseleave/#example-0尤其是代码块下方的演示,以了解我的意思。通常(在演示的右侧)我希望当鼠标进入黄色容器时触发蓝色容器的 mouseleave 事件。
我希望我的问题很清楚,因为很难解释......
编辑:
我找到了一种将 mouseenter 事件处理程序修改为此的方法:
但这并不完美,因为我需要离开整个父项目(即“类别 1”项目)并重新输入它以在悬停子项目后再次显示图像。
如果有人有更好的方法请分享!
event-handling - mootools 中的 keyup 停止事件不起作用
我试图防止在文本字段中输入非数字字符。我的代码会验证字符,但不会阻止将其添加到文本框中。
我的代码:
HTML:
jquery - stopPropagation 在 Mozilla Firefox 中不起作用
今天是个好日子。有人可以解释为什么以下代码在 Google Chrome 中有效,而在 Mozilla Firefox 中无效?目的是在第一次单击元素时显示带有链接(即元素的子元素)的面板,在第二次单击时将其隐藏,并且链接应该可以工作。在 Mozilla 中,当您单击链接(作为元素的子元素的子元素)时,链接容器只是隐藏并且 stopPropagation 不起作用。
html结构:
我认为找到解决方法不是问题,但了解代码有什么问题真的很有趣。谢谢你。
jquery - javascript、事件传播和输入字段
所以我有一个输入字段,当你用鼠标与之交互时,它基本上不起作用。这是因为:
- 加载后通过在编辑模式下展开该项目来创建输入
- 为了展开项目,我们在 li 上使用 click 事件,它是标题的父级,被输入替换
- 由于应用程序的工作方式,我们需要使用 live 而不是 click,这会阻止使用 stopPropagation()
所以我们正在使用:
然后正因为如此,显然每当鼠标尝试单击输入时,无论是移动光标,突出显示其内容等,它都会忽略它。
如果我删除目标行,当我单击输入时,它会关闭 li。
所以...我的问题:知道如何在不关闭 li 的情况下使输入可点击,并且仍然能够使用 live 而不是点击吗?
javascript - 带有点击事件的 stopPropagation()
我正在使用hammer.js,看来我event.stopPropagation()
不适用于点击事件。
如果我点击孩子,会触发关联的事件,但也会触发父母的事件,我不希望这样。
这是一个例子:http: //jsfiddle.net/Mt9gV/
我也尝试过jGestures,问题似乎是一样的。如何使用其中一个库实现此结果?(如果需要,也可以另外一个)
javascript - 即使调用了 stopPropagation (即通过第 3 方代码),也捕获点击?
我想检测页面上发生的任何点击(关闭自定义上下文菜单)。我正在使用 jQuery 并尝试做
但是,我在页面上的某些元素的点击处理程序中使用了一些调用 evt.stopPropagation() 的代码,而这些点击并没有构成我的顶级处理程序。有什么方法可以捕捉这些点击吗?可以是 jQuery 也可以不是 jQuery,只要它可以跨浏览器工作。