jQuery单击td切换复选框

Lit*_*bob 1 html javascript checkbox jquery

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

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

谢谢!

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

moh*_*ias 9

这是因为<input>复选框位于<td>并且您已将click事件附加到<td>

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

DEMO

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

参考

event.target

jQuery.is()