【发布时间】:2016-05-03 06:20:08
【问题描述】:
我正在尝试通过单击li 来选中一个复选框。问题是,只有当有人点击label时才会选中复选框,而不是完整的li(这是因为li的宽度比label长!
<ul>
<li><input id="a1" type="checkbox"><label for="a1">1</label></li>
<li><input id="a2" type="checkbox"><label for="a2">2</label></li>
<li><input id="a3" type="checkbox"><label for="a3">3</label></li>
</ul>
我已尝试使用下面的 Javascript 解决此问题,但它仍然只在单击 label 时检查复选框。
$("li").click(function(e) {
var checked = !$(this).children("input").first().prop("checked");
$(this).children("input").first().prop("checked", checked);
$(this).toggleClass("selected", checked);
});
注意:如果可能,我想避免使用 Javascript 和 Jquery。
【问题讨论】:
-
您当前的code 工作:jsfiddle.net/7tphdaLx 有什么问题?
-
如果您试图通过在项目符号和框之间单击来选中该框,那将不起作用。正如 Ahs N 所说,代码运行良好。
-
@Gerard 使用我的解决方案,单击项目符号也可以..
-
添加 CSS
li{display:block;}这将涵盖 li 的完整范围并完美点击工作:)
标签: javascript jquery html checkbox