gpt4 book ai didi

javascript - 添加/删除按钮的 jquery 逻辑

转载 作者:行者123 更新时间:2023-12-03 06:18:13 26 4
gpt4 key购买 nike

问题:

2 个 div 容器。第一个容器有 2 个按钮 - 单个按钮和多个按钮。第二个容器有 4 个按钮 - 项目 1、项目 2、项目 3、项目 4。

需要逻辑:如果选择单个按钮,我只能从项目1、项目2、项目3或项目4的按钮中选择1个。

如果选择多个按钮,我可以选择多个项目。 1 或 2 或 3 或 4 项。

所选项目将有黑色按钮。所选项目均不会呈灰色。

下面是使用的 HTML 和 JS。但不知怎的,多重逻辑不起作用。

HTML:

<div class="select-type">
<a href="javascript:void(0);" class="single-type">single</a>
<a href="javascript:void(0);" class="multi-type">Multiple</a>
</div>
<div class="select-item">
<a href="javascript:void(0);" class="btn">Item 1</a>
<a href="javascript:void(0);" class="btn">Item 2</a>
<a href="javascript:void(0);" class="btn">Item 3</a>
<a href="javascript:void(0);" class="btn">Item 4</a>
</div>

JS:

$('.select-type a').click(function(){
$('.select-type a').removeClass('selected');
$(this).addClass('selected');
if($('.single-type').hasClass('selected')){
$('.select-item a').removeClass('multiType');
$('.select-item a').addClass('singleType');
$('.select-item a.singleType').click(function(){
$('.select-item a.singleType').addClass('type-deselected');
$(this).removeClass('type-deselected');
});
}
else if($('.multi-type').hasClass('selected')){
$('.select-item a').removeClass('singleType');
$('.select-item a').addClass('multiType');
$('.select-item a').removeClass('type-deselected');
$('.select-itema.multiType').click(function(){
$('.select-item a').addClass('type-deselected');
$(this).removeClass('type-deselected');
$(this).addClass('type-selected');
});
}
});

最佳答案

这会起作用:

$('.select-type a').click(function() {
$('.select-type a').removeClass('selected');
$('.select-item a').removeClass('type-selected').addClass('type-deselected');
$(this).addClass('selected');
});

$('.select-item a').click(function() {
var $this = $(this);
var multipleAllowed = $('.select-type a.selected').hasClass('multi-type');
var selectedCount = $('.select-item a.type-selected').length;
var selected = $this.hasClass('type-selected');
if (selected) {
$this.removeClass('type-selected').addClass('type-deselected');
} else {
if (selectedCount == 1 && !multipleAllowed) {
$('.select-item a').not($this).removeClass('type-selected').addClass('type-deselected');
$this.removeClass('type-deselected').addClass('type-selected');
} else {
$(this).addClass('type-selected').removeClass('type-deselected');
}
}
});
.select-item a,
.select-item a.type-deselected,
.select-type a {
background-color: grey;
color: #fff;
}

.select-item a.type-selected,
.select-type a.selected {
background-color: black;
color: #fff;
}
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="select-type">
<a href="#" class="single-type btn">single</a>
<a href="#" class="multi-type btn">Multiple</a>
</div>
<br>
<div class="select-item">
<a href="#" class="btn type-deselected">Item 1</a>
<a href="#" class="btn type-deselected">Item 2</a>
<a href="#" class="btn type-deselected">Item 3</a>
<a href="#" class="btn type-deselected">Item 4</a>
</div>

关于javascript - 添加/删除按钮的 jquery 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38987818/

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