【发布时间】:2017-03-10 05:32:59
【问题描述】:
我正在尝试制作一个简单的小部件,允许用户选择复选框或整个 div 以更改其值。我有以下代码:
$(document).ready(function() {
$(document).on("click", ".inputCheck", function(event) {
event.stopImmediatePropagation();
event.preventDefault();
$(this).closest(".outter").trigger("click");
});
$(document).on("click", ".outter", function(event) {
console.log("inside");
event.stopImmediatePropagation();
event.preventDefault();
var $checkBox = $(this).find("input");
$(this).removeClass("selected");
$checkBox.prop("checked", !$checkBox.prop("checked"));
if ($checkBox.prop("checked"))
$(this).addClass("selected");
});
});
.outter {
width: 100px;
height: 100px;
border-style: solid;
border-width: 1px;
}
.outter:hover,
.inputCheck:hover {
cursor: pointer;
}
<!DOCTYPE HTML>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div class="outter">
<input class="inputCheck" type="checkbox">
<div>This is a test</div>
</div>
</body>
</html>
选择DIV时,它正常工作。复选框更改值并将新类“选定”添加到 .outter 类。当复选框被选中时,我尝试停止所有默认值和传播,然后触发与选择 div 相同的代码来更改类值。但是复选框保持不变。谁能告诉我为什么这不起作用以及如何解决它?
谢谢
【问题讨论】:
-
你的选择器错误,输入元素的类是
inputCheck而不是inputCheckBox -
哎呀,等一下,我会改变它。不过我还是觉得有问题
-
是的,它仍然无法正常工作,对不起,在我无法让它在其他代码中工作后,我敲了这个例子......
-
请在代码sn-p中添加。
标签: javascript jquery html