捕获父元素上的事件

时间:2010-06-07 19:45:04

标签: javascript event-bubbling

window.event在发生单击时报告树中的最低元素。 e.g。

<a href="http://server.com/page.aspx" id="anchor">
<span id="span" class="Someclass">
    <strong id="strong">Submit</strong> 
</span> </a>

当您点击上面的链接并且如果您在BODY级别有onclick listner时,window.event将报告单击了“strong”元素。在同一事件中,我如何知道父实际上是一个“锚点”标签,其href指向某处?即我正在寻找一种自动方式让我知道主要元素是“锚”而不是“强”元素。 我显然不能做window.event.target.parentNode.parentNode,因为这将是手动检查。可能是某个地方我可以跟随点击事件的“冒泡”。

任何人都有任何线索?

1 个答案:

答案 0 :(得分:2)

您可以自动检查祖先。

var element = foo;
while (foo !== document.body) {
    if (foo === someCondition) {
      return foo;
    }
    foo = foo.parentNode;
}
return false;

大多数图书馆都有一种方法可以做到这一点。例如YUI 3有Node.ancestor,jQuery有closest