【问题标题】:My jQuery navigation menu slides up too soon我的 jQuery 导航菜单滑得太快了
【发布时间】:2017-01-23 10:11:36
【问题描述】:

我有一个导航菜单。子 ul 当其父 li 鼠标悬停时向下滑动。当鼠标退出时,它也会向上滑动。但是,我试图让我的第一个和第二个子菜单在它向上滑动之前延迟 1 秒。我希望孩子 ul 在鼠标离开后保持打开状态 1 秒钟。但是,它仍然立即向上滑动。我的代码中缺少什么?

这是我的代码的链接。 https://jsfiddle.net/naeemrind/ptbzwrzu/

$(document).ready(function(){
$("#menu ul li").hover(function(){
            $(this).find(".one").stop().slideToggle(400)
        });
    });

     $(document).ready(function(){
        $("#menu ul ul li").hover(function(){
            $(this).find(".two").stop().slideToggle(400)
        });
    });

【问题讨论】:

    标签: javascript jquery html drop-down-menu navbar


    【解决方案1】:

    您没有为 hover() 提供“handlerOut”函数,因此它对悬停和悬停使用相同的函数。

    https://api.jquery.com/hover/

    将您的代码更改为:

    $("#menu ul li").hover(
        function() {
             $(this).find(".one").stop().slideDown(400)
        },
        function() {
             $(this).find(".one").delay(1000).slideUp(400)
        });
    });
    

    【讨论】:

    • 谢谢 :) 我是 Javascript 和 JQuery 的新手。
    • 但现在我遇到了另一个问题。如果指针进入 ul 5 次,则它正好上下滑动 5 次。这很烦人。
    • 你需要告诉stop清空队列:.find(".one").stop(true, false).slideDown(400)api.jquery.com/stop
    • 是的,它现在可以工作了。但是即使我很快将鼠标悬停在画廊上,我也无法弄清楚为什么会显示文本。图库里的 li 项目在闪烁,但是在停止功能后背景工作正常。
    • 我刚刚发现了这个问题。在 slideUp 之后我使用了另一个停止功能。现在它完全按照我的意愿工作了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    相关资源
    最近更新 更多