单击一个div以选中/取消选中一个复选框

Jos*_*eph 5 jquery

我单击时应用以下代码使表行检查/取消选中子复选框.现在我发现当点击行内的复选框本身时,它会进行检查.可能是它检查点击(标准功能),然后jquery选择点击事件并取消选中它?我怎样才能解决这个问题?

//check on div click
$("tr").live("click",function() {
    var checkbox = $(this).find("input[type='checkbox']");

    if( checkbox.attr("checked") == "" ){
        checkbox.attr("checked","true");
    } else {
        checkbox.attr("checked","");
    }
});
Run Code Online (Sandbox Code Playgroud)

Stu*_*ows 6

我怀疑click事件是从复选框冒泡到tr.尝试添加此代码:

$('tr input[type=checkbox]').click(function(e){
        e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

编辑

这是一个例子:http://jsfiddle.net/GSqNv/

  • 只是为了澄清(如果我理解正确),单击复选框导致复选框检查,然后事件被传递到<div>元素,导致复选框取消选中(即2次检查)? (2认同)