2011-06-24 11 views
7

からイベントをクリックしてください:jQueryのを使用してオーバーライド親の要素は、私はHTML、以下のいる子要素

<table> 
    <tr> 
     <td><div>test</div></td> 
     <td>Some Text</td> 
    </tr> 
</table> 

、私はTR要素のときに、ユーザーのクリックを実行し、いくつかのコードを持っています。それはうまくいく。

しかし、誰かがTD要素内のDIVをクリックすると、親のTR「クリック」イベントではなく、DIVの「クリック」イベントだけが必要になります。

どうすればいいですか?

ありがとうございました!

答えて

8

使用のstopPropagation:

$(function() { 
    $('tr').bind('click', function (e) { 
     console.log('tr'); 
    }); 
    $('div').bind('click', function(e) { 
     e.stopPropagation(); 
     console.log('div'); 
    }); 

})。

jsfiddle

1

clickハンドラーでevt.stopPropagationを使用してください。 jQueryのするevent.stopPropagation()で

+1

'でpreventDefault()'イベントバブルを停止しません。 –

+1

@ŠimeVidas:ダン、質問を誤読... – Ryan

2

event.stopImmediatePropagationは()私のために働いた:)

+0

これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、自分の投稿の下にコメントを残してください。自分の投稿にいつもコメントをつけることができます。そして、十分な[評判](http://stackoverflow.com/help/whats-reputation) [任意の投稿にコメントする]ことができます(http://stackoverflow.com/help/privileges/comment)。 – Barranka

+1

私の答えではないので、上記の回答にコメントを追加できませんでした。 evt.stopPropagation()は私のためには機能しませんでしたが、event.stopImmediatePropagation()はそうでしたが、他の人とこれを共有する価値があるのはなぜですか? –

関連する問題