2013-07-09 2 views
0

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

У меня есть fiddle setup here

Вы можете увидеть на пункт № 3 есть содержание в .accordion-внутренний DIV, но я не хочу, чтобы отображаться. Также вы увидите, что на позиции № 4 нет .accordion-inner внутри #collapseFour, который полностью нарушает аккордеон.

Вопрос 1: Возможно ли это с помощью аккордеона Bootstrap Twitter?

Вопрос 2: Есть ли лучший способ обойти этот процесс?

Код:

<div class="accordion" id="accordion2"> 
    <div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne"> 
     Collapsible Group Item #1 
     </a> 
    </div> 
    <div id="collapseOne" class="accordion-body collapse in"> 
     <div class="accordion-inner"> 
     Anim pariatur cliche... 
     </div> 
    </div> 
    </div> 
    <div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo"> 
     Collapsible Group Item #2 
     </a> 
    </div> 
    <div id="collapseTwo" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
     Anim pariatur cliche... 
     </div> 
    </div> 
    </div> 
    <div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree"> 
     Collapsible Group Item #3 
     </a> 
    </div> 
    <div id="collapseThree" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
     This is where i do not need child elements 
     </div> 
    </div> 
    </div> 
    <div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseFour"> 
     Collapsible Group Item #4 
     </a> 
    </div> 
    <div id="collapseFour" class="accordion-body collapse"> 

    </div> 
    </div> 
</div> 

ответ

2

jsFiddle Я считаю, что это точно что ты ищешь.

просто спрятать их, используя соответствующие функции.

$('#collapseFour').on('show', function() { 
    $('#collapseFour').collapse('hide'); 
}); 

$('#collapseThree').on('show', function() { 
    $('#collapseThree').collapse('hide'); 
}); 
+0

thats, где я начинал худеть .. просто не хотел добавлять дополнительные jQuery на страницу .. – kingkode

+0

Существует уже много jQuery, которые используются, если вы используете bootstrap. Нет вреда в нескольких дополнительных строках. – Schmalzy

+1

выглядит как im, идя с этим .. Я немного изменил его, используя повторный класс и этот селектор: http://jsfiddle.net/VXtQY/2/ – kingkode

0

Non- Jquery Решение

Попробуйте обновленный код here.

3-гармошки внутренний не будет расширяться при нажатии. И показанный аккордеон-внутренний рухнет.

+0

Это полностью ломает аккордеон раз пункт 3 или 4 щелкают .... – Schmalzy

+0

спасибо за ваши усилия. который все еще расширяет 3-й элемент, который не нужно расширять. все пункты 3 и 4 нужно сделать, это просто свернуть все, что показано на аккордеоне. – kingkode

+0

@McMastermind взгляните на новый отредактированный ответ, пожалуйста, –

0

Если вы не возражаете, что она не развалится другие области при нажатии на нее, вы можете просто удалить HREF = элемент «# collapseThree» из тега

+0

Я не против, чтобы он не рухнул .. нажав на пункт 3 или 4, он должен разрушить все. – kingkode

0

Как об этом, я добавил атрибут сказать ссылки, чтобы закрыть все открытые вкладки и использовать эту функцию JQuery:

$('a[data-close]').click(function() { 
    $($(this).data('parent')).find('.in').collapse('toggle'); 
}); 

Это даст вам хороший слайд-переключатель эффекта.

Chek из the fiddle

+0

спасибо, но это слишком большой вес для этого решения .. для этого требуется добавить новые теги данных ко всем переключателям и 114 символам JQ в отличие от оригинала данные dags и 60 символов jQ, предложенные @Schmalzy – kingkode

+0

Я не думаю, что это лишний вес, чем ваше принятое решение, плюс это обеспечивает лучший UX. По вашему подходу вы добавили дополнительный класс к аккордеонам, которым не нужен контент, плюс вам пришлось добавить '.accordion-inner' к вашему последнему элементу, мое решение требует только добавить атрибут' data-close' к ссылкам что вы не хотите отображать какой-либо контент, вы можете даже сохранить все текущие атрибуты данных, если хотите, и не нужно иметь полную разметку загрузки. –

Смежные вопросы