【问题标题】:Remove class on collapse (jquery)折叠时删除类(jquery)
【发布时间】:2015-03-26 04:08:03
【问题描述】:

我尝试寻找答案,但都没有解决我的问题。我是学习理解这种代码语言的初学者,我认为我的问题就在那里。

我已经创建了一个 JSFiddle 与我迄今为止所拥有的。

(http://jsfiddle.net/fxmcb5yv/2/)!

这是我的问题:

当 div 展开时,它会添加“selected”类,它执行以下操作:

.selected {
    background-color: #70a6b7;
    color: #ffffff;
}

这一切都很好。但是当我折叠它时,我希望 .selected 被删除。我已经用 removeClass 等尝试了几件事,但它们都没有做任何事情或导致更多问题。

我想知道是否有人可以帮我解决这个问题。

这是我尝试过的:

<script>
$(document).ready(function(){
$(".desc_div").slideUp();
$(".open_div").click(function(){
    $(this).addClass("selected").next(".desc_div").slideToggle("slow").siblings('.desc_div').slideUp().removeClass("selected").end();
  });
    })
</script>

【问题讨论】:

  • 请附上您尝试但不起作用的代码。
  • 你能告诉我们你想要达到的具体行为吗

标签: javascript jquery toggle collapse removeclass


【解决方案1】:

您需要使用.toggleClass() 而不是.addClass() 来切换类名:

$(".open_div").click(function(){
  $(this).toggleClass("selected").next(".desc_div").slideToggle("slow").siblings('.desc_div').slideUp().removeClass("selected").end();
});

Working Demo

【讨论】:

  • 抱歉回复晚了,但还是要感谢您的帮助!结果有点复杂,因为在我的代码中,四个 div 不是在一个主 div 中,而是 2 vs 2,如果你明白我的意思的话。所以这就是为什么 toggleClass 给我带来了问题。我不知道如何解释它,但最终有人想出了一个完全不同的解决方案,似乎可行(直到出现另一个问题)。无论如何,谢谢!
  • @amyvl:很高兴它有帮助:)
猜你喜欢
  • 2015-12-10
  • 2017-11-26
  • 2014-11-20
  • 2016-02-04
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多