ユーザーがチェックボックスを選択するか、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要素を選択したときにそれは通常通りに動作し、すなわちチェックボックスが値を変更し、新しいクラス 'selected'が.outterクラスに追加されました。チェックボックスを選択すると、すべてのデフォルトと伝播を停止し、divを選択してクラス値を変更するのと同じコードをトリガーしようとします。ただし、チェックボックスは同じままです。誰かがなぜこれがうまくいかず、どうやって修正するのか教えてください。
おかげ
あなたの選択が間違っている、input要素のクラスはooppsはい私はそれを変更します待つ 'inputCheck'ない' inputCheckBox' – aje
です。私はまだ問題があると思っていますが –
はい、それはまだ残念です私は他のコードで動作させることができなかった後、この例をノックしました... –