2011-06-24 211 views
7

Click事件我有以下HTML:替代父的元素從子元素

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

使用jQuery,我有一個運行TR元素上,當用戶點擊一些代碼。它運作良好。

但是,當有人點擊TD元素內的DIV時,我只想要DIV的「click」事件,而不是父級的TR「click」事件。

我該怎麼做?

非常感謝!

回答

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

+1

'的preventDefault()'不停止事件冒泡。 –

+1

@ŠimeVidas:Darn,誤讀了這個問題...... – Ryan

2

event.stopImmediatePropagation()爲我工作:)

+0

這並沒有提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – Barranka

+1

我無法對以上任何答案添加評論,因爲這些不是我的答案。 evt.stopPropagation()沒有爲我工作,而event.stopImmediatePropagation()做到了,這就是爲什麼我覺得值得與其他人分享這個:) –

相關問題