使用Jquery在事件冒泡中查找挂起或最后一个事件

时间:2013-11-01 19:07:29

标签: javascript jquery html

有没有办法使用jQuery事件对象在事件冒泡阶段识别最后一个事件或待处理事件的数量?

Ex :(链接: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");
  });
});

预期输出(待定事件) - &gt;点击元素

  • 2 - &gt;跨度
  • 1 - &gt; P
  • 0 - &gt;格

1 个答案:

答案 0 :(得分:2)

使用与冒泡路线上的每个元素完全相同的事件对象触发click事件。您可以通过向链中较低的事件添加属性并检查该值是否更高来检查此问题。从这个意义上讲,没有“待处理事件”,只有一个事件触发多个元素。

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

您能更具体地了解您想要实现的目标吗?可能有更好的方法。