Javascript:单击更改颜色并禁用其余图标

标签 javascript html css dom

所以我有 6 个图标,最初都是灰色的,除了一个被视为已选中的图标。如果单击其他图标,则该图标应启用,而另一个图标应变为灰色。我正在使用 classList.toggle("selected"); 来改变它,但我没有得到想要的结果。这是代码。

CSS

.selected {
    color : #012b72;
}

HTML

<i class="selected icon-toggle"></i>
<i class="icon-toggle"></i>
<i class="icon-toggle"></i>
<i class="icon-toggle"></i>
<i class="icon-toggle"></i>
<i class="icon-toggle"></i>

JavaScript

icons=document.getElementsByClassName("icon-toggle");

 for(i=0;i<icons.length;i++){       
   icons[i].addEventListener("click", function() {
     this.classList.toggle("selected");
   });
 }

最佳答案

 $(i).each(function(){
      var $this = $(this);
      $this.click(function(){
        $(i).each(function() {
          if($(this).hasClass("selected")){
            $(this).removeClass("selected");
          }
        });
        $this.addClass("selected");
      });
    });

关于Javascript:单击更改颜色并禁用其余图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433186/

相关文章:

javascript - 如何在全日历中禁用拖放

javascript - 使用 (document).ready 和 jQuery(function ($)) 有什么区别?

javascript - 如何检查至少一个复选框被选中

javascript - 为什么下拉菜单下的部分颜色变浅?

javascript - $.when.apply($, someArray) 是做什么的?

javascript - 如何通过 jQuery post() 提交单选按钮值

css - 将 RoR 注册脚本添加到引导模式中

javascript - 如何通过一个上传按钮上传多个文件

html - 如何为该 View 在右侧制作 3 列?

java - 使用 Java (HTMLUnit) 抓取网页,然后将结果写入 mySQL 数据库