2010-08-16 6 views
1

У меня есть «меню», которое должно открывать div с помощью меню «аккордеона».JQuery Toggle Button и Accordion Problem

Когда я добавляю значение hide() (в JS) или "hidden" (в CSS) для div, содержащего аккордеон, аккордеон перестает нормально работать. Он не отображает весь контент в нем, когда вы нажимаете на раздел аккордеона, после открытия div с помощью аккордеона с помощью меню btn.

Причина, по которой я скрываю div с аккордеоном, заключается в том, что он должен быть закрыт, пока вы не нажмете Меню btn.

Код для аккордеона:

<script type="text/javascript"> 
    $(function() { 
    // $('.effect').hide(); 
     $("#moduleMenu1, #moduleMenu2").accordion({collapsible: true, active: false}); 
    }); 
</script> 

Код для меню БТН:

<script type="text/javascript"> 
    $(function() { 
    $(".moduleMenuBtn").click(function() { 
     var effect = $('slide').val(); 
     var options = {}; 
     $(this).parent().next(".effect").toggle(effect,options,500); 
     return false; 
    }); 
}); 
</script> 

Обратите внимание, что сценарий для БТН меню не «слайд» открыть DIV с аккордеоном, это просто без всплывающей анимации?

HTML

<div class="effect"> 
        <div id="moduleMenu1"> 
         <h3><a href="#">Section1</a></h3> 
         <div> 
          <p>Some Content</p> 
         </div> 
        </div> 
        </div> 

ответ

0

У вас есть первая часть правильного

$("#moduleMenu1, #moduleMenu2").accordion({ 
     collapsible: true, active: false 
}); 

Если вы запустите его с только что это показывает, с все секции разрешено быть закрыты, и ни один из них открыт.

Проблема в том, что вы запускаете событие щелчка на кнопке меню, которая открывает содержимое для #moduleMenu1.

Также

$('.effect').hide(); 

На самом деле скрывает все меню и раздел контента, а не то, что вы хотите.

+0

Спасибо, но это действительно не получило решение =) Приятного! –

+0

Отправьте остальную часть своего HTML с другими областями меню и кнопкой .moduleMenuBtn. –