2013-09-08 3 views
1

Я пытаюсь запрограммировать ссылку на саундтрек аккордеона, который будет показывать все панели аккордеона при щелчке, а затем при повторном нажатии все панели скрываются.показать все bootstrap accordion

У меня около 90% работы, кроме верхней панели действует странно. Когда я нажимаю на шоу все в первый раз, он будет скрываться, а другое меню открыто. Когда он переключается назад и вперед, хотя он начинает работать так, как должен.

Мой JQuery выглядит следующим образом

$('#accShow').on('click', function() { 
    if($(this).text() == 'View All') { 
     $(this).text('Hide All'); 
     $('.collapse').collapse('hide'); 
    } else { 
     $(this).text('View All'); 
     $('.collapse').collapse('show'); 
    } 
    return false; 
}); 

и я пытался добавить, но это не имело никакого эффекта:

$('#collapseOne').collapse("show"); 
+0

Связанный: http://stackoverflow.com/questions/15027535/bootstrap-collapse-force-expand-all –

+0

Можете ли вы предоставить его на JSFiddle? –

ответ

5

Взятые и модифицированные from this answer:

$('#accShow').on('click', function() { 
    if($(this).text() == 'View All') { 
     $('.collapse:not(.in)').each(function (index) { 
      $(this).collapse("toggle"); 
     }); 
     $(this).text('Hide All'); 
    } else { 
     $(this).text('View All'); 
     $('.collapse.in').each(function (index) { 
      $(this).collapse("toggle"); 
     }); 
    } 
    return false; 
}); 
0

Добавить идентификатор в вашей кнопки Посмотреть все и добавить скрипт:

jQuery(document).ready(function() { 
    jQuery('#idButtonViewAll').on('click', function(e){ 
     jQuery('.accordion-body').each(function(){ 
       jquery(this).addClass("in"); 
     }); 
    }); 
}); 
+0

У меня уже есть идентификатор на моей страницеВсе кнопка ... и как бы добавить класс в помощь? Я ищу, чтобы открыть все отдельные панели, не добавляя класс. – zazvorniki

+0

Что у меня выше работает, кроме первой панели. – zazvorniki

+0

Чтобы ваши панели открывались при загрузке, им нужен класс 'in'! – Laustralien