jquery - 切换多个选定的 Div

标签 jquery css

我正在尝试使用 Jquery/CSS 设置选定 DIV 的背景,同时保持其他 DIV 的背景。

假设我有三个白色背景的 DIV。我想选择 DIV #3 并将背景颜色设置为黄色。然后,如果我选择#1,它会将背景更改为黄色,而#2 和#3 将再次变为白色。

HTML

  <div id="1" title="level" class="hover">
    <a href="#">
      1000
    </a>
  </div>
  <div id="2" title="level" class="hover">
    <a href="#">
      2000
    </a>
  </div>
  <div id="3" title="level" class="hover">
    <a href="#">
      3000
    </a>
  </div>

CSS

.hover{
  background-color: #FFFFFF;
  height: 100px;
  width: 100px;
  cursor: pointer;
  float: left;
  margin: 10px  10px 10px 6px;
  padding: 4px 4px 4px 4px;
}
.selected{
  background-color:#F3AF4D
}
.unselected{
  background-color:#FFFFFF
}

JS

$('div[title="level"]').on("click", function(){

    change_background()

    $(this).toggleClass("selected");

})

function change_background(){
  $( ".hover" ).each(function() {
    $( this ).toggleClass( "unselected" );
  });
}

我有一些软管,因为它没有按照我预期的方式工作,如本 CODEPEN 中所示

最佳答案

CSS Only 选项使用 :target 并链接您的 ID

.hover{
  background-color: #FFFFFF;
  height: 100px;
  width: 100px;
  cursor: pointer;
  float: left;
  margin: 10px  10px 10px 6px;
  padding: 4px 4px 4px 4px;
}

.hover:target{
  background-color:#F3AF4D
}
  <div id="1" title="level" class="hover">
    <a href="#1">
      1000
    </a>
  </div>
  <div id="2" title="level" class="hover">
    <a href="#2">
      2000
    </a>
  </div>
  <div id="3" title="level" class="hover">
    <a href="#3">
      3000
    </a>
  </div>

或者修复你的 JS

$('div[title="level"]').on("click", function(){

    //Remove selected from all
    $(".hover").removeClass("selected");
    
    //Add selected to clicked item
    $(this).addClass("selected");

})
.hover{
  background-color: #FFFFFF;
  height: 100px;
  width: 100px;
  cursor: pointer;
  float: left;
  margin: 10px  10px 10px 6px;
  padding: 4px 4px 4px 4px;
}
.selected{
  background-color:#F3AF4D
}
.unselected{
  background-color:#FFFFFF
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="1" title="level" class="hover">
    <a href="#">
      1000
    </a>
  </div>
  <div id="2" title="level" class="hover">
    <a href="#">
      2000
    </a>
  </div>
  <div id="3" title="level" class="hover">
    <a href="#">
      3000
    </a>
  </div>

关于jquery - 切换多个选定的 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47213121/

相关文章:

javascript - 我如何对不同数量的输入字段进行 JavaScript 数学运算?

jquery - CSS 下拉菜单 - 点击时关闭子 li 元素 - jQuery

jquery - Audio.js HTML5 音量控制

html - 网站内容被切断

firefox - 边框半径应该以 Firefox 方式还是以 Webkit 方式工作?

html - Buycraft::从左边保持之前

javascript - 如何在位置 :absolute using jQuery. css() 函数中添加 !important?

javascript - JSON 对象多重过滤器

css - 在 html 页面的左右两侧添加两条垂直线(矩形)

css - 自定义 className 语义 ui react