我编写了一个简单的js函数来打开/关闭复选框,然后单击父项(在本例中是TD)。当您单击TD上的任意位置时,此功能将按预期工作。
但是,当您单击复选框本身时,不会发生任何事情。
我想知道的是,它为什么会这样做,最好的解决方法是什么?
I have a provided a jsfiddle to demo this.
下面是我的js函数:

$("td.onoff").click(function() {
    var objCheckbox = $(this).find("input[type=checkbox]");
    if( objCheckbox.length >= 1 ) {
        objCheckbox.prop("checked", !objCheckbox.prop("checked"));
    }
});

谢谢。

最佳答案

你需要by pass event code when source of event is not td with class onoff,你可以这样做。
Live Demo

$(function() {
    $("td.onoff").click(function(event) {
        if(event.target.className != 'onoff') return;
        var objCheckbox = $(this).find("input[type=checkbox]");
        if( objCheckbox.length >= 1 ) {
            objCheckbox.prop("checked", !objCheckbox.prop("checked"));
        }
    });
});

07-24 20:19