0
我试图阻止内部复选框的事件冒泡到tr
元素的单击事件。停止传播不起作用
我有以下标记:
<table border="1">
<tr class="row">
<td>
Item 1
</td>
<td>
<input type="checkbox" class="cb">
</td>
</tr>
<tr class="row">
<td>
Item 2
</td>
<td>
<input type="checkbox" class="cb">
</td>
</tr>
</table>
行被动态地添加,所以要加听众自动动态添加元素中,我使用以下代码:
$(document).ready(function() {
$('body').off('click.row').on('click.row', '.row', function() {
alert(1);
});
$('body').off('change.cb').on('change.cb', '.cb', function(e) {
e.stopPropagation();
alert(2);
});
});
然而事件仍然冒泡到tr
元素。我也尝试以下内容:
e.stopImmediatePropagation();
window.event.cancelBubbles = true;
e.bubbles = false;
没有任何工作。
我转载这一问题的jsfiddle:
你只是停止'change'事件向上传播。您还需要添加点击处理程序 – Phil