javascript - 使用Jquery查找事件冒泡中的未决事件或最后一个事件

标签 javascript jquery html

有没有办法使用 jQuery 事件对象来识别事件冒泡阶段的最后一个事件或未决事件的数量?

例如:(链接:http://jsfiddle.net/hNTQc/)

HTML

<div>
    Div
    <p>
        Paragraph
        <br>
        <br>
        <span>
            Span
        </span>
    </p>
</div>

jQuery

$(document).ready(function(){
  $("span").click(function(event){
    alert("Spam");
  });
  $("p").click(function(event){
    alert("P");
  });
  $("div").click(function(){
     alert("Div");
  });
});

预期输出(未决事件)--> 单击元素

  • 2 --> 跨度
  • 1 --> p
  • 0 --> 分区

最佳答案

点击事件是在冒泡路径上的每个元素上使用完全相同的事件对象触发的。您可以通过向链中较低的事件添加属性并检查较高的值来检查这一点。从这个意义上说,没有“未决事件”,只有一个事件会在多个元素上触发。

jQuery 允许您使用 $(el).parents() 获取 dom 中元素的所有祖先。然后您可以手动检查绑定(bind)到这些元素的事件处理程序。该 API 是 $._data(element, "events"),尽管这是一个私有(private) API,可能会在未来版本中更改。

您能否更具体地说明您要实现的目标?可能有更好的方法。

关于javascript - 使用Jquery查找事件冒泡中的未决事件或最后一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19733681/

相关文章:

javascript - 从表中删除除特定行以外的所有行

javascript - jquery循环允许覆盖

javascript - 如何提取textarea值中#和空格之间的值

html - 如何将可滚动 Div2 中 Div1 的宽度动态更改为 Div2 的宽度

javascript - 如何使用 jQuery 或 Javascript 返回根 HTML 标签

Javascript - 页面刷新后循环继续运行

javascript - 无法通过 Perl 抓取/抓取使用 javascript 的网页

javascript - IndexedDb 有标准的命名约定吗?

javascript - jQuery 切换类需要在 Internet Explorer 中单击两次?

css - HTML5 拖放 : prevent dropping off the edge of the document window?