2010-03-09 100 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