0

我有这个代码:

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

当我单击图像时,T​​est() 也会被触发,因为我也在单击表格单元格。如何证明这一点?如果我单击图像,我希望 test2() 触发,如果我单击表格单元格中的其他位置,则应该触发 test()。

编辑:即使返回 false,Test() 仍然被触发(在 Chrome 中测试)!

4

3 回答 3

6

如果Test2()返回 false 则点击不会冒泡Test()

于 2013-03-24T22:12:43.420 回答
3

简短的回答:

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

长答案:

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

于 2013-03-24T22:13:14.750 回答
1

我更喜欢使用 eventListeners 和 event.stopPropagation() 的方式,因为我读过一些浏览器不接受return false,而且它也不是一个非常明确的操作。正如亚当所说,阅读事件传播是值得的。

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

<script>
document.getElementById("clickMe").addEventListener("click", function(event) {
  event.stopPropagation();
  //event.preventDefault();  this is the same as return false;
});
</script>
于 2016-07-25T23:04:24.960 回答