【发布时间】:2020-08-02 20:32:20
【问题描述】:
我希望对切换进行计数,但它们不是。当我按下其中一个时,计数器增加到1 并卡住。当我减少计数器时,它是-1。
预期结果是,当开关打开时,计数器会增加 (counter++),而当它关闭时,计数器应该减少 (counter--)。
切换是在 Bootstrap 中创建的。
(function() {
$(() => {
let counter = 0
for (let index = 1; index < 10; index++) {
let div = $("<div>").addClass("custom-control custom-switch");
let myLabel = createLabel("toggle" + index);
let myCheckbox = createCheckbox("toggle" + index, counter);
$(div).append(myCheckbox, myLabel);
$("#container").append(div);
}
});
})();
function createLabel(id) {
return $(`<label for=${id} class=custom-control-label>${id} </label>`);
}
function createCheckbox(id, counter) {
return $(`<input type=checkbox class=custom-control-input id=${id}>`).click(() => {
onCheckBoxSwitchToggled(id, counter);
});
}
function onCheckBoxSwitchToggled(id, counter) {
$(`input[id=${id}`).on("change", function() {
if (counter < 6) {
if ($(this).prop("checked") === true) {
counter++
$("#text").text(counter)
} else {
counter--
$("#text").text(counter)
}
} else {
alert("over than 5")
}
});
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<div id="container"></div>
<p id="text"></p>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Open modal</button>
<div class="container" data-toggle="modal" data-target="#myModal">
<div class="modal fade" id="myModal">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">The chosen coins</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
</div>
【问题讨论】: