jquery - 通过单击其父元素来切换复选框的状态

标签 jquery html

我的表格单元格内有一个复选框,我想在单击单元格时检查它(不仅仅是当我单击复选框时)。

我正在使用此代码:

$('.check_it').click( function () {
    if ($(this).find('.my_checkbox_class').is(':checked')) {
        $(this).find('.my_checkbox_class').removeAttr('checked');
        checked_counter--;
    }
    else {
        $(this).find('.my_checkbox_class').attr('checked', 'checked');
        checked_counter++;
    }
});

它工作正常,但是当我单击复选框时,此事件也会被触发,并且我的 checked_counter 变量得到错误的值 - 有人可以告诉我如何修复它吗? 我想通过单击复选框并单击它的表格单元格来检查复选框。

编辑,这是我的 html:

<td class="check_it"><input type="checkbox" class="my_checkbox_class" /></td>

最佳答案

$('.my_checkbox_class').click(function(ev){
    ev.stopPropagation();
});

应该可以解决问题。这会阻止事件冒泡,因此它不会到达 td,并且只会执行复选框默认行为。

关于jquery - 通过单击其父元素来切换复选框的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14726538/

相关文章:

javascript - jQuery 不改变元素背景颜色

android - 在 Android/PhoneGap 上运行的 jQueryMobile 拒绝 .load/.ajax

jquery - e.pageX 在所有分辨率下都无法正常工作

javascript - 使用 jQuery 更改 HTML 属性

html - 缩小堆叠图像以适合 parent 的高度

javascript - 密码应至少包含 1 位数字 - ValidateJS 中的正则表达式

javascript - jQuery 获取同级或最接近的元素不起作用

javascript - 在不使用任何 javascript 的情况下在 jquery 中动态删除文本框

html - 在页面底部设置 div 而不会在较小的屏幕尺寸下与另一个 div 重叠

php - 使用 mySQL 中的数据填充 HTML DIV