次のマークアップがあります。
<ul>
<li class="tgt"><img src="http://placehold.it/48x48" width="48px" height="48px"></li>
<li class="tgt"><img src="http://placehold.it/48x48" width="48px" height="48px"></li>
<li class="tgt"><img src="http://placehold.it/48x48" width="48px" height="48px"></li>
</ul>
フィドルからのコード:
$('.tgt').on('click', function (e) {
if ($(e.target).hasClass('tgt')) {
$(e.target).addClass('active');
}
});
jquery のイベント委任を使用して、すべての .tgt 要素にクリック ハンドラーをアタッチします。何らかの理由で、画像をクリックしても、イベントが li までバブルアップしません。代わりに、イベント ターゲットが画像であることが明らかになります。
ここにフィドルがあります: http://jsfiddle.net/CgC4V/
イベントが li.tgt にバブリングしないのはなぜですか?