jQuery Toggle Checkbox状态

时间:2012-02-01 06:53:17

标签: jquery

我有一个表,每行包含一个复选框以及一些其他单元格。要使整个行可单击以便可以用来切换复选框的状态,我使用了这段代码:

  $('#eoiTable tr').click(function(){
     var $checkbox = $(this).find('input[type=checkbox]');
     $checkbox.prop('checked', !$checkbox.is(':checked'));
  });

这对于行中的所有单元格都很有用,除非我直接单击复选框本身。它重新切换到它的旧状态。我可以理解这里发生了什么,但是当我点击复选框本身时,如何确保表onclick事件不起作用?

非常感谢!

2 个答案:

答案 0 :(得分:2)

尝试添加一些东西来阻止事件冒泡

$('#eoiTable tr input[type="checkbox"]').click(function(e) {
   e.stopPropagation();
});

编辑:输入错误

答案 1 :(得分:0)

您正在选择包含复选框的表格行。因此,为了避免在选中复选框时触发表onclick事件,请将其从选择中排除,如

$('#eoiTable tr + #eoiTable tr input:not("[type=checkbox]")')

不确定这一点,但尝试这种方法