2010-03-09 82 views
0

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

有没有办法做到这一点?

谢谢!

Click to view

回答

1

在其网站上,延迟设置为800,我想它工作得很好,它不会显示老弹出。你的代码做了其他更改吗?

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

编辑: 确定这里是如果你不希望修改多个UL菜单结构单一UL的解决方案。只要给唯一的ID给每个UL,然后修改超过=()函数在superfish.js这样

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(); 
}, 

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

+0

我没有更改.css或.js文件,但我使用自己的ul-li布局,与示例略有不同。所以当我初始化它时,我会调用$('#navigation ul')。superfish()而不是$('ul.sf-menu')。superfish()。除了没有我不关心的投影之外,其他所有东西似乎都能奏效,但当新的投影开启时,开放的投影不会立即关闭,这很烦人。我想知道是否有一个属性或我需要添加到我的列表结构来使其工作? – 2010-03-09 15:41:10

+0

@John:你有一个在线演示,所以我可以比较吗? – Ergec 2010-03-09 20:58:24

+0

我添加了一个演示链接 – 2010-03-10 14:00:26