2016-09-21 2 views
0

Ich benutze ein Semantic Ui Akkordeon und möchte, dass der Benutzer das Akkordeon mit allen Elementen drucken kann. (Es ist wie ein FAQ Akkordeon)
Gibt es eine Möglichkeit alle Akkordeon Elemente zu öffnen oder den Index des letzten Elements zu erhalten?
Hier ist mein Javascript-Code:Semantic Ui Accordion get Anzahl der Elemente

$('.print-btn').on('click', function(){ 
    $('.ui.accordion').accordion('open', 0);; 
    setTimeout(function() { //wait a second until the accordion is opened 
     print(); 
    }, 1000); 
}); 

Dies ist das erste Element öffnen würde und dann ausdrucken. Also brauche ich praktisch eine Schleife um alle Elemente zu öffnen und dafür benötige ich die Anzahl der Elemente.
Ich kenne die Anzahl der Elemente vorher nicht, da sich die Daten über die Datenbank ändern können.

+0

Sie können in die ‚CSS-Printmedien Abfrage‘ aussehen soll (http://www.w3schools.com/css/css3_mediaqu eries.asp). Dadurch können Sie CSS nur für den Druck verwenden. In diesem speziellen CSS können Sie alle Akkordeons die ganze Zeit geöffnet haben. Sie sollten dazu kein Javascript benötigen. –

+0

Ich habe darüber nachgedacht, aber es ist nicht so einfach mit dem Semantic-Ui Akkordeon als erwartet. Ich denke, es ist "besser", es mit Javascript zu schaffen. –

+0

Es ist definitiv nicht "besser", aber es könnte einfacher sein. –

Antwort

1

Sie können alle Ihre Hilfe Elemente mit einer bestimmten Klasse markieren und alle Elemente mit der angegebenen Klassenauswahl bekommen (ich benutze jQuery hier):

var items = $('.faq-item.ui.accordion'); 

Danach ist es trivial durch jedes Element gehen aus das Array items und offen sie mit einem for-loop:

for (int i=0; i<items.length; i++) { 
    items.accordion('open', i) 
}); 
+0

Das funktionierte einwandfrei. Leichter als erwartet ... Danke! –