2016-09-21 1 views
0

Я использую аккордеон Semantic Ui и хочу, чтобы пользователь мог печатать аккордеон со всеми элементами. (Это похоже на аккордеон часто задаваемых вопросов)
Есть ли способ открыть все элементы аккордеона или получить индекс последнего элемента?
Вот мой Javascript код:Semantic Ui Accordion получает количество элементов

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

Это откроет первый элемент, а затем распечатать его. Поэтому мне практически нужен цикл, чтобы открыть все элементы, и для этого мне нужно количество элементов.
Я не знаю количество элементов заранее, потому что данные могут меняться через базу данных.

+0

Вы можете посмотреть в «Css печатных СМИ запроса» (http://www.w3schools.com/css/css3_mediaqu eries.asp). Это позволяет использовать CSS только для печати. В этом конкретном css вы можете постоянно открывать все аккордеоны. Для этого вам не нужен javascript. –

+0

Я думал об этом, но это не так просто с семантическим аккордеоном, чем ожидалось. Я думаю, что «лучше» сделать это с помощью javascript. –

+0

Это определенно не «лучше», но это может быть проще. –

ответ

1

Вы можете пометить все FAQ элементы с определенным классом и получить все элементы с указанным селектором класса (я использую JQuery здесь):

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

После того, что это тривиально, чтобы пройти через каждый пункт из массив items и открытым их с for-loop:

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

Это работало безупречно. Легче, чем ожидалось ... Спасибо! –