我在div中有一个复选框,其上附有一个点击事件。但直接检查和取消选中复选框不起作用。
<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);
}
}
答案 0 :(得分:2)
您应该写var elm = getElementById('e');
而不是var elm = $(e);
答案 1 :(得分:2)
尝试正确绑定事件而不是使用内联处理程序
<强> HTML:强>
<div class="container">
<input type="checkbox" value="" /><label>Item</label>
</div>
<强> JS:强>
$('div.container').click(function(e){
if($(e.target).is(':checkbox')){ return; }
var chkBox = $(this).find(':checkbox');
chkBox.prop("checked", !chkBox.is(':checked'));
});
答案 2 :(得分:1)
如果我理解正确,您需要在div
和checkbox
被点击时切换复选框,在这种情况下,添加
$('input[type="checkbox"]').click(function(e){
e.stopPropagation();
});