2017-08-29 7 views
0

次の例は私の問題を示しています。Jqueryの兄弟()が期待通りに機能しない

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

私はアコーディオンの質問のいずれかを拡張し、最初の1が開いている間に別のものを展開しよう

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

は、矢印は変更されません。 .siblings()はそれを処理する必要がありますが、それはdoesntです。

EDIT:修正しスペルの間違いは、エラーが.accordion-toggle要素が故にお互いの兄弟、siblings()何も返さないではありませんので、まだ

+2

'sinblings()' ....尋ねる前に、エラーのコンソールを確認してください質問 –

+0

それは私のために働いていないwtf – Fenrir

+1

それはdoesnt、あなたは明らかに私の質問を理解していない!コードの後に​​私の質問を読んでください。私の問題があります – Fenrir

答えて

2

問題があります。あなたが直接.active要素を選択し、それらからクラスを削除することができ、ロジックを修正するには

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

Updated fiddle

+1

ありがとう!私もhtmlを見ていない。しかし、それはすべて意味をなさない。私はこの.not()を使用する方法を見つけようとしましたが、私はこれを行うCSSセレクタの方法しか見つけませんでした。 – Fenrir

+1

問題ありません。あなたの質問のタイプミスとの混乱のお詫び。 –

関連する問題