我有一个脚本,如果单击li
则应该选中复选框,但这不会发生。
<ul>
<li><input type="checkbox">Tyrannosaurus</li>
<li><input type="checkbox">Tyrannosaurus</li>
<li><input type="checkbox">Tyrannosaurus</li>
<li><input type="checkbox">Tyrannosaurus</li>
<li><input type="checkbox">Tyrannosaurus</li>
<li><input type="checkbox">Tyrannosaurus</li>
</ul>
<script>
$("li").click(function (e) {
var cb = $(this).find(":checkbox")[0];
if (e.target != cb) cb.checked = !cb.checked;
$(this).toggleClass("selected", cb.checked);
});
</script>
答案 0 :(得分:0)
我会使用不同的选择器
https://jsfiddle.net/stevenkaspar/43dnggja/
$("li").on('click',function (e) {
var cb = $(this).find("input[type='checkbox']");
cb.prop('checked', !cb.prop('checked'));
$(this).toggleClass("selected", cb.checked);
});
答案 1 :(得分:0)
尝试关注jQuery:
jQuery('ul li').click(function () {
//alert("hii");
if (jQuery(this).find('input[type="checkbox"]').is(":checked")) {
jQuery(this).find('input[type="checkbox"]').attr("checked", false);
}
else {
jQuery(this).find('input[type="checkbox"]').prop("checked", true);
}
alert(jQuery(this).find('input[type="checkbox"]').is(":checked"));
});
jQuery('input[type=checkbox]').click(function (e) {
e.stopPropagation();
});
这是你的FIDDLE DEMO
答案 2 :(得分:0)
您应该知道纯HTML可以实现标签切换框行为。
但是你需要模拟在父节点上切换的类。
$("input[type=\"checkbox\"]").on("change", function() {
$(this).parent().toggleClass("selected", $(this).prop("checked"));
});
SNIPPET ALTERNATIVE 选择li
点击的复选框
$("li").click(function(e) {
var checked = !$(this).children("input").first().prop("checked");
$(this).children("input").first().prop("checked", checked);
$(this).toggleClass("selected", checked);
e.preventDefault();
});
.selected {
background: black;
color: white;
}
li,
input,
label {
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<input id="cb1" type="checkbox">
<label for="cb1">Tyrannosaurus</label>
</li>
<li>
<input id="cb2" type="checkbox">
<label for="cb2">Tyrannosaurus</label>
</li>
<li>
<input id="cb3" type="checkbox">
<label for="cb3">Tyrannosaurus</label>
</li>
<li>
<input id="cb4" type="checkbox">
<label for="cb4">Tyrannosaurus</label>
</li>
<li>
<input id="cb5" type="checkbox">
<label for="cb5">Tyrannosaurus</label>
</li>
<li>
<input id="cb6" type="checkbox">
<label for="cb6">Tyrannosaurus</label>
</li>
</ul>