javascript - jQuery 点击 td 切换复选框

标签 javascript jquery html checkbox

正如标题所暗示的那样,我希望能够通过点击表格复选框本身来打开或关闭复选框。单击 td 时,下面的解决方案有效,但由于某种原因,当您单击复选框时没有任何反应。关于这里发生的事情有什么想法吗?

$('td').click(function (e) {
    // Toggle checkbox
    $('input:checkbox', this).prop('checked', function (i, value) {
        return !value;
    });
});

谢谢!

http://jsfiddle.net/Littlebob/56CnR/

最佳答案

这是因为 <input>复选框在 <td> 内并且您已将点击事件附加到 <td>

为了克服这个问题,检查目标类型,如果不是输入复选框,则需要对其进行处理。

DEMO

$('td').click(function (event) {
    if (!$(event.target).is('input')) {
       $('input:checkbox', this).prop('checked', function (i, value) {
        return !value;
       });
    }
});

引用

event.target

jQuery.is()

关于javascript - jQuery 点击 td 切换复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23626233/

相关文章:

javascript - 如何在 HTML 中实现 "select all"复选框?

javascript - 什么是好的基于二维网格的寻路算法?

javascript - 如何在存储 Laravel 后显示新模式

html - 正则表达式匹配谷歌缓存 url(当它包含一个词时匹配整个 href 参数)

javascript - 如何在不使用可见性函数的情况下隐藏元素

html - 如何设置 div 的背景图像,其值来自 sightly 组件 AEM 中的对话框(图像 url)?

c# - 我可以通过 Javascript 与 .NET 库进行交互吗?

javascript - JQuery Draggable Droppable 和 Sortable 同时用于 DOM 操作

java - 为什么这个 JSON 字符串无效? jQuery.parseJSON 函数抛出无效字符

javascript - 为什么我无法打印我的对象数据?