jQuery . Однако, если пользователь зависает до того, как документ будет готов, возникнут проблемы

Приведенный ниже код прекрасно работает, за исключением одного условия. Если пользователь наводит указатель мыши на элемент до того, как документ будет готов, то slideToggle не синхронизируется (или переворачивается).

В результате #logged_in_nav отображается при наведении мыши, а при наведении курсора поле исчезает. Какой простой способ это исправить?

   $("#logged_in_box").hover(function(){
            $("#logged_in_nav").stop(true, true).slideToggle("fast");
            $(this).addClass("logged_in_box_hover");
        }, // hover over
        function() {
            $("#logged_in_nav").stop(true, true).slideToggle("fast");
            $(this).removeClass("logged_in_box_hover");
        } // hover out
    ); // hover

1 ответ

Решение

Не использовать slideToggle, использование slideDown() (документы) и slideUp() (документы), поэтому направление явно связано с типом события.

$("#logged_in_box").hover(function(){
        $("#logged_in_nav").stop(true, true).slideDown("fast");
        $(this).addClass("logged_in_box_hover");
    }, // hover over
    function() {
        $("#logged_in_nav").stop(true, true).slideUp("fast");
        $(this).removeClass("logged_in_box_hover");
    } // hover out
); // hover
Другие вопросы по тегам