2017-08-29 28 views
0

以下示例演示了我的问题。Jquery的兄弟姐妹()没有按预期工作

https://jsfiddle.net/bff56wup/3/

$('.accordion-toggle').on('click', function() { 
    $(this).toggleClass('active').siblings().removeClass('active'); 
}); 

当我扩大了手风琴的问题之一,并试图展开一个又一个,而第一个是开放的,箭头不会改变。 .siblings()应该处理,但它不。

编辑:更正拼写错误,错误仍然存​​在

+2

'sinblings()'....请提问前检查错误控制台问题 –

+0

它不适用于我wtf – Fenrir

+1

不,它不,你显然不明白我的问题!在代码后重读我的问题。存在我的问题 – Fenrir

回答

2

的问题是,因为.accordion-toggle元素是不是彼此的兄弟姐妹,因此siblings()回报什么。

要解决的逻辑,你可以直接选择.active元素,并从中取出类:

$('.accordion-toggle').on('click', function() { 
    $('.active').not(this).removeClass('active'); 
    $(this).toggleClass('active'); 
}); 

Updated fiddle

+1

谢谢!我甚至没有看到HTML。但它是有道理的。我试图找到一种方法来使用这个.not(),但我只找到了这样做的CSS选择器的方式。 – Fenrir

+1

没问题。对于你的问题中的错字混淆抱歉。 –