jquery - 菜单 jquery 状态 is-active is-not-active

标签 jquery

我有一个带有状态的 jQuery 菜单,但遇到了一个小问题。

现在我的代码可以在所有<li>中运行,但每个 <li> 应该不同因为将是一个带有不同图标的菜单。

例如,当单击 fa-bars 时,需要具有黄色,但是当单击 fa-search 时,需要具有红色,我需要将其应用于 <li>因为我需要更改 li背景。

所以基本上我想做的是:第一次点击时为黄色,第二次点击时返回原始颜色。

那申请各个fa图标明白吗?

jsfiddle:https://jsfiddle.net/oosa8yzk/4/

html:

<ul>
  <li>
    <a class="menu" data-toggle="tooltip" data-placement="bottom" title="home">
      <i class="fa fa-bars fa-2x" aria-hidden="true"></i>
    </a>
  </li>
  <li>
    <a class="search"><i class="fa fa-search fa-2x" aria-hidden="true"></i></a>
  </li>
</ul>

jquery

$(document).ready(function() {
  $('li a').on('click', function() {
    $('li').removeClass('active');
    $('li').addClass('active');
  });
});

CSS:

.active {
  color: blue;
  background-color: red;
}

.active .fa {
  color: yellow;
}

最佳答案

使用toggleClass() 方法来切换类并使用 this 在事件处理程序回调中引用单击的元素。

$(document).ready(function() {
  $('li a').on('click', function() {
    $(this)
      .closest('li') // get the list item
      .toggleClass('active') // toggle active class of it
      .siblings() // get sibling li
      .removeClass('active'); // remove active class from siblings
  });
});
.active {
  color: blue;
  background-color: red;
}
.active .fa {
  color: yellow;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
  <li>
    <a class="menu" data-toggle="tooltip" data-placement="bottom" title="home">
      <i class="fa fa-bars fa-2x" aria-hidden="true"></i>
    </a>
  </li>
  <li>
    <a class="search"><i class="fa fa-search fa-2x" aria-hidden="true"></i></a>
  </li>
</ul>

关于jquery - 菜单 jquery 状态 is-active is-not-active,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524811/

相关文章:

jquery - td 值不在很酷的 autosuggest jQuery 函数中

php - 使用 jquery.confirm 提交表单

jquery - jQuery的动画功能使浏览器崩溃

javascript - 如何通过导航栏的高度更改平滑滚动 JQuery 动画的偏移量

javascript - 通过选择的值获取选择元素

jquery - Bootstrap 空字段验证用于其他验证

jquery - 如何使用window.location.hash?

jquery - 将 CSS 添加到 jQuery,在 Polymer 组件中动态添加元素

javascript - 如何在 javascript/jQuery 中创建命名空间和类

javascript - 如何做到这样,如果我单击 <a> 元素,它会转到链接,但不会触发其父元素的 .click() 事件?