Javascript 如果其他按钮具有特定类,则切换按钮

Javascript 如果其他按钮具有特定类,则切换按钮,javascript,jquery,Javascript,Jquery,如果一个或多个其他按钮的类别为。已选择 我已经试过了,但只有选择了一个按钮才有效 $('body')。在(“单击”,“按钮.项目选择”,功能(e){ e、 预防默认值(); 设maxItems=2; 让Items=$('button.item select.selected')。长度; 如果(项目=1){ $('.change this').prop(“disabled”,false); } 否则{ $('.change this').prop(“disabled”,true); } });

如果一个或多个其他按钮的类别为
。已选择

我已经试过了,但只有选择了一个按钮才有效

$('body')。在(“单击”,“按钮.项目选择”,功能(e){
e、 预防默认值();
设maxItems=2;
让Items=$('button.item select.selected')。长度;
如果(项目<最大项目){
$(this.toggleClass('select');
$(this.toggleClass('selected');
}否则{
$(this.addClass('select');
$(this.removeClass('selected');
}
if($(this).hasClass('selected')){
$('.change this').prop(“disabled”,false);
}否则{
$('.change this').prop(“disabled”,true);
}
});
.row{
背景#f8f9fa;
边缘顶部:20px;
}
上校{
边框:实心1px#6c757d;
填充:10px;
}

禁用/启用
弗斯特
第二

第三,根据您对评论的解释:

单击按钮时,我将切换该按钮上的
.selected
类,然后选择具有该类的所有按钮,如果长度为1或更多,则启用
更改此
按钮,否则禁用它

看一看

$('body')。在(“单击”,“按钮.项目选择”,功能(e){
e、 预防默认值();
$(this.toggleClass('select');
$(this.toggleClass('selected');
让itemsSelected=$('.selected').length;
如果(所选项目>=1){
$('.change this').prop(“disabled”,false);
}
否则{
$('.change this').prop(“disabled”,true);
}
});
.row{
背景#f8f9fa;
边缘顶部:20px;
}
上校{
边框:实心1px#6c757d;
填充:10px;
}
.选定{
边框:1px纯蓝色;
}

禁用/启用
弗斯特
第二

第三,根据您对评论的解释:

单击按钮时,我将切换该按钮上的
.selected
类,然后选择具有该类的所有按钮,如果长度为1或更多,则启用
更改此
按钮,否则禁用它

看一看

$('body')。在(“单击”,“按钮.项目选择”,功能(e){
e、 预防默认值();
$(this.toggleClass('select');
$(this.toggleClass('selected');
让itemsSelected=$('.selected').length;
如果(所选项目>=1){
$('.change this').prop(“disabled”,false);
}
否则{
$('.change this').prop(“disabled”,true);
}
});
.row{
背景#f8f9fa;
边缘顶部:20px;
}
上校{
边框:实心1px#6c757d;
填充:10px;
}
.选定{
边框:1px纯蓝色;
}

禁用/启用
弗斯特
第二

第三个
以下是我对您问题的理解。
更改此
按钮只有在所有三个
项目选择
按钮都选择了class
时才会启用。
因此,我们在任何
项目选择
按钮上监听单击,并在单击后立即添加类
所选
。同时,我们检查是否所有三个按钮都选择了class

document.addEventListener('click', event => {
    if (event.target.classList.contains('item-select')) {
        // then the click was on one of the .item-select buttons
        // toggle .selected class to it
        event.target.classList.toggle('selected');

        // and each time buttons are clicked
        // check if they all have class .selected
        let count = document.querySelectorAll('.item-select.selected').length;

        if (count === 3) {
            document.querySelector('.change-this').removeAttribute('disabled');
        } else {
            document.querySelector('.change-this').setAttribute('disabled', '');
        }

    }
});

注:对不起,我不擅长jQuery,所以使用纯JS。

以下是我对您问题的理解。
更改此
按钮只有在所有三个
项选择
按钮都选择了class
时才会启用。
因此,我们在任何
项目选择
按钮上监听单击,并在单击后立即添加类
所选
。同时,我们检查是否所有三个按钮都选择了class

document.addEventListener('click', event => {
    if (event.target.classList.contains('item-select')) {
        // then the click was on one of the .item-select buttons
        // toggle .selected class to it
        event.target.classList.toggle('selected');

        // and each time buttons are clicked
        // check if they all have class .selected
        let count = document.querySelectorAll('.item-select.selected').length;

        if (count === 3) {
            document.querySelector('.change-this').removeAttribute('disabled');
        } else {
            document.querySelector('.change-this').setAttribute('disabled', '');
        }

    }
});

注:对不起,我不擅长jQuery,所以使用纯JS。

这里有一种更简单的方法来做你需要的事情

document.addEventListener('click',({target})=>{
if(target.matches('.btn primary')){
target.classList.toggle('item-select');
}
document.querySelector('.btn-danger')。disabled=Array.from(document.queryselectoral('.btn-primary'))
.some(b=>b.classList.contains('item-select');
});
。项目选择{
颜色:红色;
}

禁用/启用
弗斯特
第二

第三
这里有一个更简单的方法来做你需要的事情

document.addEventListener('click',({target})=>{
if(target.matches('.btn primary')){
target.classList.toggle('item-select');
}
document.querySelector('.btn-danger')。disabled=Array.from(document.queryselectoral('.btn-primary'))
.some(b=>b.classList.contains('item-select');
});
。项目选择{
颜色:红色;
}

禁用/启用
弗斯特
第二

第三个
让我更好地理解它:如果两个或多个其他按钮具有类
,则必须启用按钮
“禁用/启用”
。如果少于两个按钮具有类,则必须禁用按钮
,如果其他按钮没有“选择”类,则必须禁用按钮。现在,它只适用于1个按钮,如果我选择2个按钮,然后取消选择一个,带有类更改的按钮这将更改为禁用,但我希望它保持启用状态,如果其他一些按钮已“选择”类抱歉,我仍然不理解,理解哪个按钮必须执行什么操作有点令人困惑带有类的按钮
更改此
在默认情况下是禁用的,其他3个带有类
项选择的按钮在单击时添加了
已选择的
类。如果这3个按钮选择了类<代码>,<代码>更改此<代码>将变为启用<代码>,<代码>禁用<代码>其他方式,您说的每个注释都不同,让我更好地理解:如果选择了类<代码>,则必须启用按钮<代码>“禁用/启用”
,如果少于两个按钮具有该类,则必须禁用该按钮?如果其他按钮没有选择该类,则必须禁用该按钮。现在,它是开着的