jquery - 不稳定的 jQuery 导航

标签 jquery navigation slidedown slideup

我的 jQuery 导航存在问题。它没有通常的导航设置(ul > li > ul 等)。 我这里有一个 jsfiddle:http://jsfiddle.net/RMRGH/2/
如果将代码放在本主题中而不是 jsfiddle 中更方便,请告诉我,我会将其粘贴到此处;)。

CSS 有点乱,但可以完成工作 =)。 由于底层 CMS(Joomla),我被迫使用此设置。

导航似乎不稳定,我没有足够的 jQuery 知识来找出原因。

当您将鼠标悬停在项目上时,可以很快地从一个项目移到另一个项目上。菜单变得无法使用,因为它立即向上滑动。摆弄它,你就会明白我在说什么(很难解释)。

我无法找出此问题的根源以及如何解决它。我希望 stackoverflow 的你们能够帮助我。

提前致谢!

最佳答案

我更新了你的 fiddle :http://jsfiddle.net/RMRGH/6/

问题似乎是 jQuery('#nav li').hover(function(){}..) 中缺少 clearTimeout() 导致超时即使您再次将鼠标悬停在菜单上,也会继续操作,从而关闭它。

这是代码:

jQuery(document).ready(function(){

    var timer;
    var hover;

    jQuery('.moduletable-subNav > ul').hide();

    jQuery('#nav li').hover(
        function(){
            var id = jQuery(this).attr('data-number');
            jQuery('.moduletable-subNav > ul').slideUp();
            jQuery('#submenu-'+id).stop().slideDown();
            clearTimeout(timer);
        },
        function(){
            var id = jQuery(this).attr('data-number');
            timer = setTimeout(function() { jQuery('#submenu-'+id).slideUp(); },1000);
        }
    );

    jQuery('.moduletable-subNav ul').hover(
        function(){
            clearTimeout(timer);
        },
        function(){
            var id = jQuery(this).attr('id');
            timer = setTimeout(function() { jQuery('#'+id).slideUp(); },1000);
        }
    );
});
​

关于jquery - 不稳定的 jQuery 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894368/

相关文章:

javascript - 平滑滚动解决方法

php - 单击鼠标并输入按钮提交表格

jquery - 选择框单击功能不再检测到 Bootstrap

java - 开发一个带有导航按钮的软件

jquery - 这些网站是如何在浏览器中全屏显示的,底部有一个了解更多按钮(让你自动进入页面下方)

jquery - 主干 subview 事件

css - 固定 header ,不在正文填充上使用硬值

android - 导航到目的地时仅创建一个 fragment 实例(android)

javascript - jQuery - 阅读更多/阅读更少。如何替换文字?

javascript - 隐藏元素而不遮盖顶部的项目