JQuery выпадающего меню прилипания - PullRequest
0 голосов
/ 21 августа 2009

, поэтому я использую функцию .hover в jquery ... но у меня небольшая проблема. выпадающие списки прилипают и не прячутся, когда вы наводите на них мышь очень быстро (ff3) кажется, что она пропускает функцию мыши, если предыдущая функция не была завершена, а именно slideDown. в любом случае, чтобы это исправить?

вот тестовый участок: http://vasoshield.xcsit.com/index.html

JavaScript:

 $(document).ready(function() {
    $('#mainNav ul li').hover(  
        function() {
            $(this).find('ul').slideDown(500);
        },
        function () {
            $(this).find('ul').hide(0);
        }
    );      
 });

HTML меню

<div id="mainNav">
    <ul>
        <li class="requestInfoLink">
            <a href="#">Request Info</a>
            <ul>
                <li><a href="#">Ordering</a></li>
                <li class="last"><a href="#">Contact Us</a></li>
            </ul>
        </li>   

        <li class="newsLink">
            <a href="#">News</a>
            <ul>
                <li class="last"><a href="#">Press Release</a></li>
            </ul>
        </li>
        <li class="productLink">
            <a href="#">Product</a>
            <ul>
                <li><a href="#">Overview</a></li>
                <li><a href="#">Physician</a></li>
                <li class="last"><a href="#">Patient</a></li>
            </ul>
        </li>               

    </ul>
</div>  

Ответы [ 2 ]

0 голосов
/ 28 сентября 2010

У меня действительно есть лучшее рабочее решение:

$(document).ready(function() {
$('#mainNav ul li').hover(  
    function() {
            $(this).find('ul').slideDown(500);
    },
    function () {
            $(this).find('ul').stop(false,true).hide(0);
    }
);          

});

Итак, при наведении мыши он автоматически останавливает анимацию. STOP имеет два параметра, один из которых очищает всю очередь анимации (не обязательно), а второй - для перехода прямо к концу анимации. В этом случае вы хотите сразу перейти к концу анимации и выключить его. Это должно удалить все ваши проблемы!

0 голосов
/ 21 августа 2009

Попробуйте сначала спрятать их в $ (документ).

Если нет, то почему бы не попробовать .slideToggle ()

Я уверен, что это что-то маленькое и тупое. Просто попробуйте разные вещи. Сначала я бы попробовал .slideToggle (). Или просто .toggle ()

Edit: Я не думаю, что браузеру нравится другая функция () при наведении курсора.

Попробуйте сделать размытие, когда оно скользит вверх. Должен обеспечить более гладкий и приятный на вид результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...