2017-08-29 6 views
0

Das folgende Beispiel veranschaulicht mein Problem.Jquery's Geschwister() funktionieren nicht wie erwartet

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

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

Wenn ich einen der Akkordeon Frage erweitern und versuchen, ein anderes zu erweitern, während die erste offen ist, wird der Pfeil nicht geändert. .siblings() sollte das behandeln, aber es tut nicht.

EDIT: Korrigierte Schreibfehler, ist Fehler immer noch da

+2

'sinblings()' .... Bitte überprüfen Sie die Konsole auf Fehler, bevor Sie fragen Fragen –

+0

Es funktioniert nicht für mich wtf – Fenrir

+1

Nein, es nicht, Sie klar meine Frage nicht verstanden !! Lesen Sie meine Frage nach dem Code erneut. Es liegt mein Problem – Fenrir

Antwort

2

Das Problem ist, weil die .accordion-toggle Elemente nicht Geschwister voneinander sind, daher siblings() kehrt nichts.

Um die Logik zu beheben können Sie die .active Elemente direkt wählen und die Klasse aus ihnen entfernen:

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

Updated fiddle

+1

Danke! Ich habe nicht einmal auf den HTML-Code geschaut. Aber es ergibt Sinn. Ich habe versucht, einen Weg zu finden, um diese .not() zu verwenden, aber ich habe nur die CSS-Selektor-Methode gefunden. – Fenrir

+1

Kein Problem. Entschuldigung für die Verwirrung mit dem Tippfehler in Ihrer Frage. –

Verwandte Themen