1

有没有办法使用 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 --> 格
4

1 回答 1

2

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

jQuery 允许您使用$(el).parents(). 然后您可以手动检查绑定到这些元素的事件处理程序。虽然这是一个私有 API ,$._data(element, "events")但它的 API 可能会在未来的版本中发生变化。

您能否更具体地说明您要完成的工作?可能有更好的方法。

于 2013-11-01T19:28:21.223 回答