Jquery 通过移除每个的类来折叠手风琴(当前除外),但这个。父级?

Jquery 通过移除每个的类来折叠手风琴(当前除外),但这个。父级?,jquery,accordion,Jquery,Accordion,所以我一直在使用一个插件,它提供了一个简单的手风琴,但不提供自动折叠。我试图创建一个简单的脚本,但没有成功 让我提供一些DOM结构: .mx-groupbox-collapsible.collapsed .mx-groupbox-header .content .mx-groupbox-collapsible.collapsed .mx-groupbox-header .content .mx-groupbox-collapsible.collapsed .mx-groupb

所以我一直在使用一个插件,它提供了一个简单的手风琴,但不提供自动折叠。我试图创建一个简单的脚本,但没有成功

让我提供一些DOM结构:

.mx-groupbox-collapsible.collapsed
  .mx-groupbox-header
  .content
.mx-groupbox-collapsible.collapsed
  .mx-groupbox-header
  .content
.mx-groupbox-collapsible.collapsed
  .mx-groupbox-header
  .content
假设结构本身就说明了这一点,但有一件事:当.collapsed类被移除时,我认为它将以与构建手风琴相反的方式扩展该项

不知何故,激发jQuery脚本的唯一方法是以头$'.mx groupbox头为目标。单击。它应该做的是找到每个没有.collapsed类的项并将其添加,同时将其从其父项中移除

我最好的猜测是这段jQuery

// Target the inner accordion item header
$(".mx-groupbox-header").click(function() { 

  // Target each accordion item that doesn't have class 'collapsed',
  // except the parent of the current clicked item
  $('.mx-groupbox-collapsible').not([$('.collapsed'),$(this).parent()]).each(function(){

      // Add 'collapsed' class, so current opened item, except current will collapse
      $(this).addClass('collapsed');
  });
});

谁能告诉我哪里出了问题并给我提供解决方案呢?

是的,这与通常的做法完全相反

如果这真的是你的标记,你要用点击标题之类的东西, 您应该在标题上单击-查找最接近的groupbox父项,如:

//缓存下拉列表 var$collapsable=$'.mx groupbox collapsable'; //目标是内部accordion项目标题 $.mx-groupbox-header.clickfunction{ //查找标头的可折叠父项 var$myCollapsible=$this.closest'.mx-groupbox-collapsible'; //针对每个没有类“折叠”的手风琴项目, //当前单击项的父项除外 $collapsable.not$mycollapsable.addClasscollapsed; //最终,如果需要,还应: $myCollapsible.removeclass; };
谢谢Roko,这立刻解决了我的问题!似乎是用“最近的”创建了一个“this.parent”变量。不错!遗憾的是,我一直坚持使用这个标记,因为它是我必须使用的带有Mendix框架的本机“小部件”的一部分。由于我自己无法编写标记,我已经很高兴能够添加一些jQuery功能。。不过,非常感谢Roko!不客气。真高兴它帮了忙&谢谢你的奖励@桑德斯切弗