Мой Собственный JQuery Аккордеон - PullRequest
0 голосов
/ 02 ноября 2009

Эй, ребята, я создал следующую структуру меню:

<div id="menu">
<ul>
<li><a href="#">Main Item1</a></li>
<li><a href="#">Main Item2</a></li>
<li><a href="#">Main Item3</a>
    <ul>
    <li><a href="#">SubItem for MainItem3</a></li>
    <li><a href="#">2ndSub for MainItem3</a></li>
    </ul>
</li>
<li><a href="#">Main Item4</a>
    <ul>
    <li><a href="#">SubItem for MainItem4</a></li>
    <li><a href="#">2ndSub for MainItem4</a></li>
    </ul>
</li>
</ul>
</div>

Так что это моя структура меню. Теперь я хочу использовать jQuery Latest для создания эффекта SlideUp / SlideDown.

Я делаю так:

$(document).ready(function(){
    $('#menu ul li:has(ul)').mouseenter(function(){         
                $('#menu ul li ul').slideDown('slow');                              
    }).mouseleave(function(){
        $('#menu ul li ul').slideUp('slow');
    });
});

Сначала я попытался навести курсор мыши и навести курсор мыши, но когда я использовал эту функцию, наведение мыши сработало, и когда я захотел перейти к Sub, меню сдвинулось вверх, но событие mouseout произошло. Теперь это работает, но когда я парю, например. на Главном Пункте 3, сабвуферы также от Главного Пункта 4 открываются и закрываются при наведении мышки?!?! Как сказать только пункты меню, например, Основной пункт 3 или Основной пункт 4 ???

Надеюсь, вы понимаете, о чем я?

Спасибо

1 Ответ

1 голос
/ 02 ноября 2009
$(function(){
    $('#menu ul li:has(ul)').hover(function(){                 
            $(this).find('ul').slideDown('slow');                                                          
    }, function(){
            $(this).find('ul').slideUp('slow');
    });
});
...