javascript - 在简单的 jquery Accordion 中切换 css 样式

标签 javascript jquery toggleclass

我有一个用 Jquery 制作的简单 Accordion 。它可以在项目上切换打开和关闭,还可以关闭任何其他事件项目。

这是代码:

  $(document).ready(function($) {
    $('#accordion').find('.accordion-toggle').click(function(){

    $(this).toggleClass('activeState');

      // Remove active state from other panels not selected
      $("#accordian").not($(this)).removeClass('activeState');

      //Expand or collapse this panel
      $(this).next().slideToggle('fast');

      //Hide the other panels
      $(".accordion-content").not($(this).next()).slideUp('fast');

    });
  });

现在我只是使用“activeState”类来添加黄色背景颜色(稍后我希望使用图标类)。现在,当打开和关闭同一项目时,它可以很好地切换。但我希望它在单击另一个 Accordion 项目时切换/删除 activeState 类(然后显然将 activeState 类附加到新打开的 Accordion 项目。我正在尝试使用“.not()”jQuery 函数来删除 activeState来自任何不是被单击的事件对象的“.accordian-toggle”项目的类。我在这里是因为我对此没有任何运气。

这是 JSFiddle https://jsfiddle.net/0LLncd4d/26/ 我可以就我可能忽略的事情寻求一些帮助吗?

最佳答案

替换两行

$(this).toggleClass('activeState');
$("#accordian").not($(this)).removeClass('activeState');

$('.accordion-toggle').removeClass('activeState');
if($(this).parent().find('.accordion-content').css('display')=='none'){
   $(this).addClass('activeState');
}

关于javascript - 在简单的 jquery Accordion 中切换 css 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547271/

相关文章:

javascript - 为什么 HTML/React 页面出现语法错误

javascript - 如何使用正则表达式对不同的字母(不一定是连续的)进行分组

javascript - 如何检测页面不透明度?

jquery - 从打开的页面隐藏 iframe

带有显示 : block overrides my main css 的 Jquery 内联 css

javascript - backbone.js 事件没有触发,我不明白为什么

javascript - 在固定在顶部之前,如何使粘性导航栏在英雄底部显示透明?

asp.net - 如何从 jQuery 获取中继器项目

JQuery:滚动时在 anchor 上切换类

javascript - Slick Carousel 目标事件幻灯片添加和删除动画类