Ich mag ein Idiot sein, aber wie hält man mehrere Abschnitte im Akkordeon der jQuery-Benutzeroberfläche offen? Die Demos haben jeweils nur eine geöffnet ... Ich suche ein zusammenklappbares Menüsystem.
javascript
jquery
html
jquery-ui
Gehhilfe
quelle
quelle
Antworten:
Dies wurde ursprünglich in der jQuery-UI-Dokumentation für Akkordeon erläutert :
"Ich bin vielleicht ein Idiot" - Sie sind kein Idiot, wenn Sie die Dokumentation nicht lesen, aber wenn Sie Probleme haben, beschleunigt dies normalerweise die Suche nach einer Lösung.
quelle
Ziemlich einfach:
quelle
create: function(event) { $(event.target).accordion( "activate", false ); }
, um zusammengebrochen zu beginnen.create: function(event) { $(event.target).accordion( "activate", false ); }
Sie die Option zu setzen:{active: false}
Hat dies in einem ähnlichen Thread gepostet, dachte aber, dass es auch hier relevant sein könnte.
Dies wird mit einer einzigen Instanz von jQuery-UI Accordion erreicht
Wie andere angemerkt haben, verfügt das
Accordion
Widget nicht über eine API-Option, um dies direkt zu tun. Wenn aus irgendeinem Grunde aber Sie müssen das Widget nutzen (zB Sie ein vorhandenes System sind die Aufrechterhaltung) ist es möglich , dies zu erreichen , indem die Verwendung vonbeforeActivate
Event - Handler - Option zu unterminieren und das Standardverhalten des Widgets zu emulieren.Beispielsweise:
Sehen Sie sich eine jsFiddle-Demo an
quelle
ui-accordion-header-active
Oder noch einfacher?
quelle
Ich habe ein jQuery-Plugin erstellt, das das gleiche Aussehen wie jQuery UI Accordion hat und alle Registerkarten \ Abschnitte offen halten kann
Sie finden es hier
http://anasnakawa.wordpress.com/2011/01/25/jquery-ui-multi-open-accordion/
funktioniert mit dem gleichen Markup
Javascript-Code
UPDATE: Das Plugin wurde aktualisiert, um die Standardoption für aktive Registerkarten zu unterstützen
UPDATE: Dieses Plugin ist jetzt veraltet.
quelle
Eigentlich suchte ich eine Weile im Internet nach einer Lösung dafür. Und die akzeptierte Antwort gibt die gute Antwort "nach dem Buch". Aber ich wollte das nicht akzeptieren, also suchte ich weiter und fand Folgendes:
http://jsbin.com/eqape/1601/edit - Live-Beispiel
In diesem Beispiel werden die richtigen Stile verwendet und gleichzeitig die angeforderte Funktionalität hinzugefügt. Der Platz zum Schreiben wird hinzugefügt. Fügen Sie bei jedem Header-Klick Ihre eigene Funktionalität hinzu. Ermöglicht auch, dass mehrere Divs zwischen den "h3" liegen.
HTML Quelltext:
quelle
Ich habe eine schwierige Lösung gefunden. Rufen wir dieselbe Funktion zweimal auf, jedoch mit unterschiedlicher ID.
JQuery-Code
HTML Quelltext
quelle
class
wenn Sie einen einzelnen Selektor verwenden, der auf dem von anderen vorgeschlagenen basiert. Dies bedeutet dann, dass Sie sich nicht wiederholen ( DRY )Erstellen Sie einfach mehrere Akkordeon-Divs, die jeweils ein Ankertag darstellen, wie:
Es summiert sich etwas Markup. Aber funktioniert wie ein Profi ...
quelle
Einfach: Aktivieren Sie das Akkordeon für eine Klasse und erstellen Sie damit Divs, wie bei mehreren Akkordeoninstanzen.
So was:
JS
HTML
https://jsfiddle.net/sparhawk_odin/pm91whz3/
quelle
Nennen Sie einfach jeden Abschnitt des Akkordeons als sein eigenes Akkordeon. aktiv: n ist 0 für das erste (so wird es angezeigt) und 1, 2, 3, 4 usw. für den Rest. Da es sich bei jedem um ein eigenes Akkordeon handelt, haben alle nur einen Abschnitt, und der Rest wird zum Starten zusammengeklappt.
quelle
Noch einfacher ist es, wenn es im Klassenattribut jedes Li-Tags beschriftet ist und Sie eine Abfrage haben, um jedes Li zu durchlaufen und das Akkordeon zu initialisieren.
quelle
Ohne jQuery-UI-Akkordeon kann man dies einfach tun:
Und js
https://jsfiddle.net/gayan_dasanayake/6ogxL7nm/
quelle
öffne jquery-ui - *. js
finden
$.widget( "ui.accordion", {
finden
_eventHandler: function( event ) {
drinnenVeränderung
zu
Vor
active.removeClass( "ui-accordion-header-active ui-state-active" );
hinzufügen
if (typeof(active) !== 'undefined') {
und schließen}
genießen
quelle
Sie verwenden einfach die Funktion jquery each ().
quelle