2013-03-24 44 views
0

我有這樣的代碼:JavaScript的嵌套的onclick

<td onclick="Test()"> 
    <img src="test.jpg" onclick="Test2(); return false;"><br> 
    Rest of the cell with some text. 
</td> 

當我點擊圖像,測試()也被解僱了,因爲我也可以點擊表格單元格。如何預防這一點?如果我點擊圖像,我想要test2()觸發,如果我點擊表格單元格中的其他位置,應該觸發test()。

編輯:即使返回false,Test()仍然被觸發(在Chrome中測試)!

+0

它仍然沒有工作!請幫助我。 – Mbrouwer88 2013-03-28 17:07:23

+0

任何人的答案? – Mbrouwer88 2013-03-29 09:33:56

+0

瞭解事件代表團 – 2013-03-29 10:44:25

回答

3

簡短的回答:

<img src="test.jpg" onclick="Test2(); return false;"> 

龍答:

事件順序 - http://www.quirksmode.org/js/events_order.html

+0

謝謝你。對不起,作爲一個noob。我從例子中學到了最好的東西! – Mbrouwer88 2013-03-24 22:15:16

+1

對不起,它仍然無法正常工作!請參閱上面的 – Mbrouwer88 2013-03-29 09:34:12

+0

@ Mbrouwer88 - 在這種情況下,您的Test2中存在JavaScript錯誤(該函數會導致腳本執行在返回false語句之前暫停)在Chrome或Firefox中,打開控制檯或Firebug(CTRL + SHIFT + J)並點擊圖片 - 你會看到一個腳本錯誤,修復它。 – Adam 2013-03-29 11:50:22

6

如果Test2()返回false,點擊不會泡到Test()

+0

無法正常工作,請參閱上文。請進一步幫助我。 – Mbrouwer88 2013-03-29 10:00:43

1

我喜歡的方式是使用eventListeners和event.stopPropagation(),因爲我讀過一些瀏覽器不接受return false和我t的也是not a very well defined action。像Adam said一樣,閱讀事件傳播是值得的。

<div id="clickme"></div> 

<script> 
document.getElementById("clickMe").addEventListener("click", function(event) { 
    event.stopPropagation(); 
    //event.preventDefault(); this is the same as return false; 
}); 
</script>