2017-08-30 2 views
3

Ich versuche, Bootstrap accordion programmgesteuert hinzuzufügen, so dass jedes Mal, wenn ich auf ADD-Taste klicke, ein neues Akkordeon erzeugt wird und das vorherige oder irgendein anderes schließt. Ich kann Bootstrap-Dokumente nicht herausfinden, wie man methods verwendet und welche Optionen zu übergeben, habe ich einige von mir platziert, aber es funktioniert nicht.Das letzte dynamisch hinzugefügte Akkordeon öffnen

if(this.aCount === 1){ 
    $('.collapse').collapse('hide'); 
}else if(this.aCount === 2){ 
    $('.collapse').collapse('hide'); 
    $('.collapse').collapse('show'); 
} 

Das Problem ist meine ID auf dem Akkordeon dynamisch sind, so kann ich nicht, dass verwenden, aber insgesamt mein Skript generieren 3 Akkordeon und bei jedem Mal ein neues Akkordeon hinzufügen möchte ich vor kurzem ein hinzugefügt öffnen und alle schließen offene. Gerade jetzt Es öffnet die allererste.

Antwort

0

Hier ist meine Arbeit jsFiddle, versuchen Sie diese. Ich benutze jquery toggle() Methode, um jedes Div zu öffnen und zu schließen, wenn Sie darauf klicken. Dann habe ich siblings() verwendet, um das relative div-Element aufzurufen.

Ich benutze Bootstrap hier nicht. :)
Hoffe das wird dir helfen.

+0

Nicht sicher, wie kann ich Ihr Beispiel auf meins anwenden. – Nofel

+0

Ah okay @Nofel, Warum? – bellabelle

+0

Sie können dieses Beispiel manuell hinzufügen. :) – bellabelle

0

Sie können "Delegate Event" in jQuery die .on Methode, um über Ereignisse zu binden Elemente dynamisch erstellt:

jQuery(document).on('click', '.collapse', function (e) 
{ 
    // SOME .collapse WAS CLICKED! 
    jQuery('.collapse').collapse('hide'); 
}); 

Auf diese Weise jedes Mal, wenn ein .collapse Element geklickt wird - auch wenn das Element wurde dynamisch erstellt - alle anderen werden geschlossen.

+0

Ich habe es funktioniert, aber jetzt läuft mein Code immer wieder (denke ich), also wenn es versteckt ist, ändert es nicht das Minus. Hier ist meine neue [codepen] (https://codepen.io/codearts/pen/dzwdyj) – Nofel

+0

@Nofel hier ist eine gegabelte Version Ihres Stiftes: https://codepen.io/anon/pen/wqRXZz Ich habe hier etwas vereinfacht und da. –

+0

Es funktioniert nicht so, wie es sollte. Der rote Rand zeigt an, welches div als Plus/Minus geöffnet ist und ur plus minus funktioniert nicht. – Nofel

Verwandte Themen