2011-01-26 6 views
2

どのように私は、ターゲットクリックした要素を取得することができた場合でも(DIV)GETターゲットはdiv要素をクリックした場合でも、それ他のdiv(ただ、ターゲットのdivおよびそのための一つのイベント)内部

のように同じタイプの他の要素内でこの要素I私はdivのクリックイベントを宣言し、私はトップのdivをクリックしたときに私は両親のための3つのクリックイベントを持って、お互いの中に3つのdivを持っています。

ので、私はあなたがあなたのクリックイベントハンドラ内でe.stopPropagation()を追加してみてください可能性が

jQuery('div').click(function(e) { 
    var clicked = jQuery(e.target); 
    // Ensure we're checking which list item is clicked, 
    // other children should be allowed 
    if(clicked.parents().length > 0) { 
     // :first ensures we do not select higher level list items 
     alert($(clicked).html()); 
return ;  
    } 
else 
{ 
    alert($(clicked).html()); 
} 

}); 

答えて

3

を試してみてくださいマイ私がクリックされたターゲット要素のためのワンクリックのイベントをしたいし、他の人に

を無視します。これにより、クリックされたdivのいずれかでイベントがトリガーされますが、イベントがdomの上に移動するのを止めます。

1

stopPropagationを行う一つの方法です。むしろよりよい、私が思うに、現在の要素は、あなたがまだ高い木アップハンドラでイベントを処理できることを意味イベントターゲットと同じであるかどうかを確認することです。私は他のを持っていたので

jQuery('div').click(function(e) { 
    if (this === e.target) { 
     // we're handling on the clicked element 
    } 
} 
+0

これは私のためによく働きましたstopPropagationで防止したくないハンドラをクリックする – Zane

関連する問題