我有一个表,每行包含一个复选框以及一些其他单元格。要使整个行可单击以便可以用来切换复选框的状态,我使用了这段代码:
$('#eoiTable tr').click(function(){
var $checkbox = $(this).find('input[type=checkbox]');
$checkbox.prop('checked', !$checkbox.is(':checked'));
});
这对于行中的所有单元格都很有用,除非我直接单击复选框本身。它重新切换到它的旧状态。我可以理解这里发生了什么,但是当我点击复选框本身时,如何确保表onclick事件不起作用?
非常感谢!
答案 0 :(得分:2)
尝试添加一些东西来阻止事件冒泡
$('#eoiTable tr input[type="checkbox"]').click(function(e) {
e.stopPropagation();
});
编辑:输入错误
答案 1 :(得分:0)
您正在选择包含复选框的表格行。因此,为了避免在选中复选框时触发表onclick事件,请将其从选择中排除,如
$('#eoiTable tr + #eoiTable tr input:not("[type=checkbox]")')
不确定这一点,但尝试这种方法