Jquery / CSS подменю

0

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

Вот html:

   <nav>
<div class="navigation_toplevel">
    <a href="Index"><h4>Home</h4></a>
</div>

<div class="navigation_toplevel has_sub">
    <a href="Index"><h4>Home</h4></a>
</div>
<div class="navigation_bottomlevel">
    <ul>
        <li>Preferences</li>
        <li>Preferences</li>
        <li>Preferences</li>
    </ul>
</div>
<div class="navigation_toplevel has_sub">
    <a href="Index"><h4>Home</h4></a>
</div>
<div class="navigation_bottomlevel">
    <ul>
        <li>Preferences</li>
        <li>Preferences</li>
        <li>Preferences</li>
    </ul>
</div>
<div class="navigation_toplevel has_sub">
    <a href="Index"><h4>Home</h4></a>
</div>
<div class="navigation_bottomlevel">
    <ul>
        <li>Preferences</li>
        <li>Preferences</li>
        <li>Preferences</li>
    </ul>
</div>
<div class="navigation_toplevel has_sub">
    <a href="Index"><h4>Home</h4></a>
</div>
<div class="navigation_bottomlevel">
    <ul>
        <li>Preferences</li>
        <li>Preferences</li>
        <li>Preferences</li>
    </ul>
</div>
<div class="navigation_toplevel has_sub">
    <a href="Index"><h4>Home</h4></a>
</div>
<div class="navigation_bottomlevel">
    <ul>
        <li>Preferences</li>
        <li>Preferences</li>
        <li>Preferences</li>
    </ul>
</div>
</nav>

Я настроил это так, потому что это меню должно быть полностью текучим (если маленькие ветки могут быть 1,2 или 3 ссылки на строку) и иметь возможность показывать подменю горизонтально под ним, заполняя контейнер nav.

Мой JQuery:

<script>
$(document).ready(function () {


    if ($(".navigation_toplevel").hasClass("has_sub")) {
        $(this).hover(function () {
            $(".navigation_toplevel").nextAll("div:first").toggleClass("show_sub");
        });
            }

            else { }
      });

</script>

Что я здесь делаю неправильно?

Теги:

1 ответ

0

ну, $(".navigation_toplevel") возвращает коллекцию. Правильный способ работы с коллекцией при получении элементов по имени класса - $(".navigation_toplevel").each(function(){ do something with a single element }). Но в вашем случае я думаю, что вам нужен такой код: $(".navigation_toplevel.has_sub").hover(mouseInHandler, mouseOutHandler)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню