Superfish,2个菜单一次打开 - 如何预防?

时间:2010-03-09 14:30:37

标签: javascript jquery jquery-plugins superfish

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

有办法吗?

谢谢!

Click to view

1 个答案:

答案 0 :(得分:1)

在其网站上,延迟设置为800,我猜它工作正常,它不会显示旧的弹出窗口。您是否在其代码中进行了任何其他更改?

http://users.tpg.com.au/j_birch/plugins/superfish/#examples

编辑: 如果您不想将多个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();
},

这可能会引起其他一些副作用,但我现在看不到任何副作用。