如果用户在doc准备好之前悬停,jQuery .hover会导致问题

时间:2011-02-09 01:25:20

标签: jquery hover jquery-effects jquery-hover

除了一个条件外,下面的代码效果很好。如果用户在doc准备好之前将鼠标悬停在元素上,则slideToggle将不同步(或反转)。

结果是#log_in_nav在mouseout上显示,并且在悬停时该框消失。解决这个问题的简单方法是什么?

   $("#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 个答案:

答案 0 :(得分:3)

请勿使用slideToggle。请改用slideDown()(docs)slideUp()(docs),以便方向明确与事件类型相关联。

$("#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