0

window.eventは、クリックが発生したときにツリーの最下位の要素を報告します。例えば

<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を実行できないことは明らかです。クリックイベントの「バブリング」を追うことができる場所かもしれません。

誰か手がかりはありますか?

4

1 に答える 1

2

祖先を自動で確認できます。

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

ほとんどのライブラリには、これを行うためのメソッドが組み込まれています。たとえば、YUI 3 にはNode.ancestorがあり、jQuery にはclosestがあります。

于 2010-06-07T19:49:56.400 に答える