Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当父项发生单击事件时,复选框功能不起作用_Javascript_Jquery - Fatal编程技术网

Javascript 当父项发生单击事件时,复选框功能不起作用

Javascript 当父项发生单击事件时,复选框功能不起作用,javascript,jquery,Javascript,Jquery,我在一个div中有一个复选框,它附带了一个click事件。但是直接勾选和取消勾选复选框是不起作用的 <div class="container" onclick="select(this)"> <input type="checkbox" value="" /><label>Item</label> </div> function select(e) { var elm = $(e); var chkBox

我在一个div中有一个复选框,它附带了一个click事件。但是直接勾选和取消勾选复选框是不起作用的

<div class="container" onclick="select(this)">
     <input type="checkbox" value="" /><label>Item</label>
</div>

function select(e) {
    var elm = $(e);
    var chkBox = elm.find('input');
    console.log(chkBox.is(':checked'));
    if(chkBox.is(':checked')) {
       chkBox.prop("checked", false);
   }else{
       chkBox.prop("checked", true);
   }
}

项目
功能选择(e){
var elm=$(e);
var chkBox=elm.find('input');
log(chkBox.is(':checked');
如果(chkBox.is(':checked')){
chkBox.prop(“选中”,假);
}否则{
chkBox.prop(“选中”,为真);
}
}

演示:

您应该编写
var elm=getElementById('e')而不是var
elm=$(e)


自己尝试:

尝试正确绑定事件,而不是使用内联处理程序

HTML:

<div class="container">
    <input type="checkbox" value="" /><label>Item</label>
</div>
$('div.container').click(function(e){
   if($(e.target).is(':checkbox')){ return; }
   var chkBox = $(this).find(':checkbox');
   chkBox.prop("checked", !chkBox.is(':checked'));
});

如果我理解正确,您希望在单击
div
复选框时切换复选框,在这种情况下,添加

$('input[type="checkbox"]').click(function(e){
  e.stopPropagation();
});

我希望即使选中了容器,也要选中复选框。