我有一个带有嵌套表的表。问题是在鼠标事件监听器中,我想抓住最深的一行。我发现this几乎就是我要找的东西,但我没有足够的经验来使用这个例子来解决我的问题。成功的关键是制作警报框以显示" 2"而不是" 1"在下面给出JSFIddle
<table>
<tbody>
<tr id='1'><td>A
<table>
<tbody>
<td><tr id='2'>B</tr></td>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
注意:为简单起见,我提出了两个级别,但是想要考虑任何级别的嵌入式结构可能的一般情况。
更新:请参阅针对NewToJS评论更正的updated JSFiddle
答案 0 :(得分:1)
event.stopPropagation()
td
是tr
的孩子,反之亦然
Event.stopPropagation()
防止当前事件在捕获和冒泡阶段进一步传播。
$(function() {
$(document).on('mouseover', 'tr', function(e) {
e.stopPropagation();
console.log(this.id);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
<tbody>
<tr id='1'>
<td>A
<table>
<tbody>
<tr id='2'>
<td>B</td>
</tr>
<tr id='3'>
<td>C</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>