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

jquery - jQuery UI 自动完成:在输入时选择自定义项

我有一个带有自动完成功能的文本框。当输入框的文本包含某些字符时,我还在自动完成下拉列表中添加了一个自定义元素。我正在添加这个自定义元素来自定义插件的 _renderItem 函数:

我希望每当用户键入包含“someText”的内容并按 Enter 键(之前没有在下拉列表中选择任何内容)时,都会为我的自定义元素引发自动完成的“选择”事件。

我尝试在文本框上为“keyup”事件添加一个处理程序,但是每次按 Enter 时都会调用该处理程序(即使在下拉列表中选择了一些元素),并且我无法从“选择”中取消事件的传播' 自动完成的事件处理程序。(我尝试了 e.stopPropagation 和 e.originalEvent.stopPropagation 但它仍然由“keyup”处理程序处理)。

关于如何实现这一目标的任何想法?谢谢

0 投票
1 回答
2272 浏览

events - 带有点击事件的 div 内的寻呼机的 jQuery 循环 - 无法停止传播

我正在使用 jQuery Isotope 插件。在每个可点击(最大化/最小化)同位素元素中,我生成了一个 jQuery Cycle 幻灯片,如

单击寻呼机链接会关闭同位素元素,因此看不到下一张幻灯片:(如何停止寻呼机点击传播到父级(同位素元素)?非常感谢任何建议!

ps:如果我使用'mouseover'作为pagerEvent,它可以工作;但幻灯片闪烁两次。所以这也不是一个简单的出路。并且 - 鼠标悬停不适用于屏幕手机和平板设备...

0 投票
1 回答
454 浏览

javascript - jQuery stopPropagation - 函数再次启动

你能告诉我如何停止函数传播吗?第一次单击操作后,我需要再次启动某些功能。我使用 scrollTo jquery 插件来滚动我的内容,当我点击我的“fire”按钮内容滚动时很好,但我不能再这样做了...... Thx 4 帮助。

这是我的功能:

0 投票
1 回答
3025 浏览

jquery - 如何使用更新的代码修改滑动切换来停止事件传播。

我有一个 jquery 功能,其中有两个选项卡。
在 上click,每个选项卡都会进行 ajax 调用并绘制一个 jsp 页面。
第二个标签有一个滑动切换。

我的问题最初是当页面加载时我单击第二个选项卡,滑动切换工作正常。

当我单击第一个选项卡并单击第二个选项卡时,滑动切换将快速打开和关闭。

如何阻止这种传播?

我尝试了 event .preventDefault(),stopPropagation()die。没有运气。

我试过的代码在下面。滑动切换方法是一个 js 文件,另外两个在不同的 js 文件中。

jsp:

0 投票
1 回答
174 浏览

javascript - jquery UI 执行中的奇怪延迟

我一直在研究 Web 应用程序的一部分。javascript 文件变得相当大,其中很大一部分负责初始化和处理 jQuery UI 元素和事件。为了使事情更具可读性和可维护性,我将 UI 初始化程序和事件处理程序拆分到一个单独的文件中。该文件在逻辑文件之前加载,由 firebug 的 net 选项卡确认。

由于我已经分离了 UI 元素,我注意到按钮和复选框在它们的事件第一次触发之前已经从单击触发器变为双击。之后,单击执行事件。为了仔细检查,我在事件处理程序中设置了一个日志语句,直到第二次单击它才会打印。

这是html页面的脚本声明

onload在 setCoordinates 中定义,然后setupElements在 ui_initilization 中触发。

例如,我在 html 中定义一个复选框为

并将点击事件处理ui_initilization.js

第一次单击什么也不做,日志语句也不显示。第二次点击触发事件。

有没有办法来解决这个问题?

0 投票
2 回答
3586 浏览

jquery - 未正确检测到 jQuery mouseup

我有一个包含跨度的 div。我有一个 mouseup 和 mousedown 事件,在按下 div 时应该触发。但是它不能正常工作。

请去这个小提琴:http: //jsfiddle.net/Ym7rM/

如果您选择文本然后尝试拖动它,它只会检测到 mousedown 事件,而不是 mouseup。

我究竟做错了什么?我正在使用 Chrome。

谢谢

编辑:

抱歉,我简化了问题,请参阅新小提琴。

0 投票
1 回答
203 浏览

javascript - jQuery事件处理/传播/冒泡?

我正在尝试为网站创建一个菜单,为此我使用了 jQuery,但遇到了一个小问题。

我有这个结构

在 jQuery 中,我有

当用户将鼠标悬停在 menuNode 上时,应该显示 menuSelect(确实如此),但如果我将鼠标悬停在 menuAnchor 或 span 上,它会触发 mouseout 事件,然后触发 mouseover 事件。

因此,如果说,我将鼠标悬停在 menuNode 上,然后移到 span 然后再次移到 menuNode,它将触发 mouseover 事件 3 次。我之前在单击事件中遇到过这种行为,但似乎用于解决此问题的方法不适用于此问题。

有什么建议么?

0 投票
3 回答
2513 浏览

jquery - 通过jQuery停止将关键事件传播到特定的div

假设您的 HTML 中具有以下结构,并且内容 div 中的某些元素具有各种键(按下、向上、向下)事件:

您通过 jQuery 添加一个绝对定位的 div:

您如何临时(在灯箱存在期间)防止所有键盘事件被 $('#content')及其子级捕获或冒泡,以便上述结构的灯箱存在时的冒泡顺序将是

  1. $('#lightbox *')
  2. $('#lightbox')
  3. $('body')
  4. $('html')

而它将是

  1. $('#content *')
  2. $('#content')
  3. $('body')
  4. $('html')

灯箱什么时候不见了?

编辑:这里有一些额外的信息。

  • 我不能使所有表单元素都被禁用或只读(这无论如何都适用于有限的元素),因为灯箱有时可能存在于许多已经分配了唯一键事件的表单元素之上。

  • 另外,我希望关键事件影响窗口+(灯箱,如果有,否则为内容),所以我不能直接停止所有事件传播

  • 上面的顺序可以是4-1而不是1-4,没关系。重要的是在关键事件中绕过这个特定元素的内容(灯箱或内容根据情况)。

0 投票
3 回答
13784 浏览

javascript - stopPropgation 是否会阻止事件在捕获阶段传播?

我正在查看http://www.quirksmode.org/js/events_order.html,这部分内容含糊不清:

在 Microsoft 模型中,您必须将事件的cancelBubble属性设置为true

在 W3C 模型中,您必须调用事件的stopPropagation()方法。

这会在冒泡阶段停止事件的所有传播。

所以我的问题是:

  • 当事件监听器设置为在捕获阶段监听时,它是否会自动不继续传播到内部元素?
  • 或者如果它确实继续传播,调用会e.stopPropagation()阻止它,还是只对泡沫阶段有效?
0 投票
1 回答
1108 浏览

jquery - 如何取消 pjax 事件?

我以这种方式使用 pjax(来自https://github.com/defunkt/jquery-pjax):

二。略显突兀,传递一个容器并绑定一个错误处理程序:

在某些情况下,我的链接可能有一个类应该阻止链接通过<a href='/explore' class='js-pjax no-link'>Explore</a>

以及阻止它的代码:

我的问题是:在这种情况下,返回 false/preventDefault 不会阻止 pjax 触发。

如果'js-pjax'链接也有类('no-link'),有什么建议如何停止pjax?