JQueryUI Accordion не работает для многоуровневых меню (элементы перекрываются) - PullRequest
0 голосов
/ 18 октября 2011

Я использую JQueryUI Accordion для создания вертикального многоуровневого меню со следующим кодом:

<ul class="accordion_menu">
  <li>
      <a href="#">Item 1</a>
  </li>
  <li>
      <a href="#">Item 2</a>
      <ul class="accordion_menu">
         <li><a href="#">Item 2 - 1 </a></li>
         <li><a href="#">Item 2 - 2</a>
             <ul class="accordion_menu">
                <li><a href="#">Item 2 - 2 - 1</a></li>
                <li><a href="#">Item 2 - 2 - 2 </a></li>
             </ul>
         </li>
         <li><a href="#">Item 2 - 3 </a></li>
         <li><a href="#">Item 2 - 4</a></li>
      </ul>
  </li>
  <li>
      <a href="#">Item 3</a>
  </li>
</ul>

<script type="text/javascript">
    $(function() {
        $(".accordion_menu").accordion({event: "mouseover", fillspace: true, collapsible: true});
    });
</script>

И в этом прикрепленном снимке вы можете видеть, что элементы перекрываются.

image

Примечание. Если я уберу «Элемент 1», все начнет работать правильно.Я потерян здесь.Я новичок в Jquery.Пожалуйста, объясните мне, чего мне не хватает ..

1 Ответ

1 голос
/ 18 октября 2011

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

Вот улучшенное решение:

Сценарий

$(function() {
    $(".accordion_menu").accordion({event: "mouseover", fillspace: true, collapsible: true});
    $('.accordion_submenu').hide();

$(".submenu").mouseover(function () {
    $('.accordion_submenu').slideDown("fast");
}).mouseout(function(){
$('.accordion_submenu').slideUp("fast");
  });
    });

HTML

<ul class="accordion_menu">
  <li>
      <a href="#">Item 1</a>
  </li>
  <li>
      <a href="#">Item 2</a>
      <ul class="accordion_menu">
         <li><a href="#">Item 2 - 1 </a></li>
     <li><a href="#" class="submenu">Item 2 - 2</a></li>
         <ul class="accordion_submenu">
                <li><a href="#">Item 2 - 2 - 1</a></li>
                <li><a href="#">Item 2 - 2 - 2 </a></li>
         </ul>
         <li><a href="#">Item 2 - 3 </a></li>
         <li><a href="#">Item 2 - 4</a></li>
      </ul>
  </li>
  <li>
      <a href="#">Item 3</a>
 </li>
</ul>

Грязно, но работает.

...