Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Superfish,两个菜单同时打开-如何防止?_Javascript_Jquery_Jquery Plugins_Superfish - Fatal编程技术网

Javascript Superfish,两个菜单同时打开-如何防止?

Javascript Superfish,两个菜单同时打开-如何防止?,javascript,jquery,jquery-plugins,superfish,Javascript,Jquery,Jquery Plugins,Superfish,我有一个超级鱼菜单,延迟设置为800,但当我从一个下拉菜单移动到另一个下拉菜单时,它仍然同时显示上一个下拉菜单和新的下拉菜单。在800毫秒延迟结束之前,上一个下拉列表将消失。我不想更改延迟,但如果打开了一个新的下拉列表,我希望以前打开的下拉列表立即关闭,而不延迟。我希望这是有道理的 有办法吗 谢谢 在其网站上,延迟设置为800,我想它工作正常,不会显示旧的弹出窗口。你对它的代码做了其他的修改吗 编辑: 如果您不想将多UL菜单结构修改为单个UL,那么这里有一个解决方案。只需为每个UL提供唯一的I

我有一个超级鱼菜单,延迟设置为800,但当我从一个下拉菜单移动到另一个下拉菜单时,它仍然同时显示上一个下拉菜单和新的下拉菜单。在800毫秒延迟结束之前,上一个下拉列表将消失。我不想更改延迟,但如果打开了一个新的下拉列表,我希望以前打开的下拉列表立即关闭,而不延迟。我希望这是有道理的

有办法吗

谢谢


在其网站上,延迟设置为800,我想它工作正常,不会显示旧的弹出窗口。你对它的代码做了其他的修改吗

编辑: 如果您不想将多UL菜单结构修改为单个UL,那么这里有一个解决方案。只需为每个UL提供唯一的ID,然后在superfish.js中修改over=function(),如下所示

over = function(){
    var $$ = $(this), menu = getMenu($$);
    $('.sf-menu').each(function(){
        if ($(this).attr('id') != $(menu).attr('id')) {
            $(this).hideSuperfishUl();
        }                       
    });
    clearTimeout(menu.sfTimer);
    $$.showSuperfishUl().siblings().hideSuperfishUl();
},

这可能会导致其他一些副作用,但我现在没有看到任何副作用。

我没有更改.css或.js文件,但我使用的是我自己的ul-li布局,与示例略有不同。因此,当我初始化它时,我调用$('ul.sf menu').superfish()而不是$('ul.sf menu').superfish()。除了我不关心的阴影外,其他一切似乎都正常,但打开的下拉列表不会在新的下拉列表打开时立即关闭,这很烦人。我想知道我的列表结构中是否需要添加一个属性或其他东西才能正常工作?@John:你有在线演示吗?我可以比较一下吗?@John:因为你为每个主要类别创建了不同的菜单,所以在设计师之后滚动到珠宝不是隐藏设计师类别,因为这两个类别是完全不同的ULs。这些主要部分必须是一个主要无序列表的列表项。您可以修改superfish代码来处理这个问题,但是修改菜单以只使用一个主UL会容易得多,就像superfish的原始结构一样。