http://jsfiddle.net/walkerneo/QqkkA/Javascriptイベントの委任、クリックされた要素の親を処理していますか?
になるだろうされていない要素のためのイベントの委任を使用する方法は、しかし、私が尋ねるまたはJavaScriptでのイベントの代表団との回答されているいずれかのここに多くの質問を見てきましたが、私は見ていましたクリックイベントのターゲット。例えば
:
HTML:
<ul>
<li><div class="d"></div></li>
<li><div class="d"></div></li>
<li><div class="d"></div></li>
<li><div class="d"></div></li>
<li><div class="d"></div></li>
<li><div class="d"></div></li>
</ul>
CSS:
ul{
padding:20px;
}
li{
margin-left:30px;
margin-bottom:10px;
border:1px solid black;
}
.d{
padding:10px;
background:gray;
}
私は彼らをクリックしているときli
要素を処理するためのクリックイベントを追加したい場合は?私がイベントハンドラをul
要素にアタッチすると、div
は常にターゲット要素になります。クリック機能でターゲット要素のすべての親をチェックするだけでなく、これをどのように達成できますか?
編集:私はするのではなく、イベントの委任を使用したい
:
var lis = document.getElementsByTagName('li');
for(var i=0;i<lis.length;i++){
lis[i].onclick = function(){};
}
しかし、私は行った場合:
document.getElementsByTagName('ul')[0].addEventListener('click',function(e){
// e.target is going to be the div, not the li
if(e.target.tagName=='LI'){
}
},false);
EDIT:私は使用方法に興味がないんだけどこののJavascriptライブラリ、私は彼らがそれをやっている方法とそれが純粋なjsでやり遂げる方法に興味があります。ここで
あなたの質問について実際に混乱し、達成したいことが理解できませんでした。 –
私はいつもこのことに腹を立てます...このリンクは役に立つかもしれません:http://www.quirksmode.org/js/events_order.html –
@Michal、それは非効率的と思われました、それが唯一の方法であるかどうか疑問に思っていました。 – mowwwalker