Javascript jquery:单击多个元素时,然后切换新类

Javascript jquery:单击多个元素时,然后切换新类,javascript,jquery,Javascript,Jquery,请帮助解决以下问题,我想创建一个脚本,一旦你点击了所有的天蓝色方块,红色方块就会改变显示绿色的类。非常感谢 语言:lang js var mouse = function(){ $('.bt').click(function(){ $(this).toggleClass('bt2'); }); } var snd = function(){ if ($('#1, #2, #3, #4, #5').hasClass('bt2')){ $('.bt3').toggle

请帮助解决以下问题,我想创建一个脚本,一旦你点击了所有的天蓝色方块,红色方块就会改变显示绿色的类。非常感谢

语言:lang js

var mouse = function(){
  $('.bt').click(function(){
  $(this).toggleClass('bt2');
  });
}

var snd = function(){ 
  if ($('#1, #2, #3, #4, #5').hasClass('bt2')){
     $('.bt3').toggleClass('live');
  }

}

$(document).ready(mouse);
$(document).ready(snd);
语言:langcss

.bt {
  width:50px;
  height:50px;
  background-color:deepskyblue;
  display:inline-block;
  margin-right:25px;
}

.bt2 {
  width:50px;
  height:50px;
  background-color:orange;
  display:inline-block;
  margin-right:25px;
}

.bt3 {
  width:50px;
  height:50px;
  background-color:red;
  display:inline-block;
  margin-right:25px;
}
.live {
  width:50px;
  height:50px;
  background-color:green;
  display:inline-block;
  margin-right:25px;
}

body {
  background-color:#121212;
}
语言:lang html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div id="1" class="bt"></div>
  <div id="2" class="bt"></div>
  <div id="3" class="bt"></div>
  <div id="4" class="bt"></div>
  <div id="5" class="bt"></div>
  <div id="6" class="bt3"></div>

</div>

只需检查
类中是否还有
.bt的元素$('.bt').length
expression-它检查类为
bt
的元素集合是否有任何成员。如果集合中没有元素,只需切换我们需要变为绿色的元素。我不知道为什么要引入
snd
函数。我会移除它

var mouse = function(){
    $('.bt').click(function() {
        $(this).toggleClass('bt2');
        if (!$('.bt').length) {
            $('#6').toggleClass('live');
        }
    });
};
var mouse=function(){
$('.bt')。单击(函数(){
$(this.toggleClass('bt2');
snd();
});
}
var snd=函数(){
if($('.'1,'2,'3,'4,'5')。过滤器('.bt2')。长度===$('.'1,'2,'3,'4,'5')。长度){
$('.bt3').toggleClass('live');
}否则{
$('.bt3').removeClass('live');
}
}
$(文档).ready(鼠标);
美元(文件).ready(snd)
.bt{
宽度:50px;
高度:50px;
背景颜色:深蓝;
显示:内联块;
右边距:25px;
}
.bt2{
宽度:50px;
高度:50px;
背景颜色:橙色;
显示:内联块;
右边距:25px;
}
.bt3{
宽度:50px;
高度:50px;
背景色:红色;
显示:内联块;
右边距:25px;
}
.活{
宽度:50px;
高度:50px;
背景颜色:绿色;
显示:内联块;
右边距:25px;
}
身体{
背景色:#121212;
}

我将您的版本缩短了一点,并添加了
live
类的切换:

$(document).ready(function() {

  if ($('#1, #2, #3, #4, #5').hasClass('bt2')) {
    $('.bt3').toggleClass('live');
  }

  $('.bt').click(function() {
    $(this).toggleClass('bt2');
     $('.bt3').toggleClass('live', $('.bt:not(.bt2)').length ? false : true );
  });
});

该函数接受第二个参数(布尔值),该参数决定是否删除或添加指定的类。 在这种情况下,状态是通过a来设置的,它检查是否有任何具有类
bt
的元素具有类
bt2


您将函数分配给变量并将其用于“.ready()”处理程序有什么具体原因吗?

您有什么具体问题吗?不知道为什么有人否决了您,所以我平衡了。我不知道怎么走,谢谢!谢谢你提供的详细信息,是的,我需要恢复上一节课。很好。也许你可以添加一些文字来解释为什么这可以解决问题。而这个代码片段可以解决这个问题,真的有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性@弗兰克兹,已经添加了解释。希望现在一切都好。