gpt4 book ai didi

javascript - 只允许用户最多选择三个区 block

转载 作者:行者123 更新时间:2023-11-29 17:46:07 26 4
gpt4 key购买 nike

我有一段代码将事件监听器添加到多个按钮,当用户单击一个按钮时,一个类将应用于按钮容器。我该如何限制这一点,以便用户最多只能选择三个按钮。下面的代码在一定程度上起作用,当你达到三个时你不能取消选择。谁能帮我实现

var blocks = document.querySelectorAll(".block");
var btn = document.querySelectorAll("button");
var total = 0;

for (let i = 0; i < btn.length; i++) {
btn[i].addEventListener("click", function() {
if (total < 3 && blocks[i].classList.contains("active")) {
blocks[i].classList.remove("active");
total--;
} else if (total < 3 && !blocks[i].classList.contains("active")) {
blocks[i].classList.add("active");
total++;
}
});
}
.container{
display:flex;
}
.block{
padding: 50px;
border:1px solid;
max-width:
}
.block.active{
background:grey;
}
<div class="container">
<div class="block">
<button>click</button>
</div>
<div class="block">
<button>click</button>
</div>
<div class="block">
<button>click</button>
</div>
<div class="block">
<button>click</button>
</div>

</div>

这个。

最佳答案

您只需删除此条件 total < 3 &&从你的第一个 if .如果元素已被选中,则所选元素的数量无关紧要。您只想取消选择它。

var blocks = document.querySelectorAll(".block");
var btn = document.querySelectorAll("button");
var total = 0;

for (let i = 0; i < btn.length; i++) {
btn[i].addEventListener("click", function() {
if (blocks[i].classList.contains("active")) {
blocks[i].classList.remove("active");
total--;
} else if (total < 3 && !blocks[i].classList.contains("active")) {
blocks[i].classList.add("active");
total++;
}
});
}
.container{
display:flex;
}
.block{
padding: 50px;
border:1px solid;
max-width:
}
.block.active{
background:grey;
}
<div class="container">
<div class="block">
<button>click</button>
</div>
<div class="block">
<button>click</button>
</div>
<div class="block">
<button>click</button>
</div>
<div class="block">
<button>click</button>
</div>

</div>

关于javascript - 只允许用户最多选择三个区 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49491928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com