2012-10-29 57 views
1

我正在使用jQuery-ui的菜單功能。看到我的example fiddlejquery-ui的菜單

我的問題是,當您將鼠標懸停在菜單上並退出時,所有子菜單也會退出。但是當你在子菜單中並且你離開時,子菜單將保持打開狀態。它不會關閉,直到你點擊菜單外

我嘗試添加該代碼,但它不會工作:

$("#menu").mouseleave(function(){ 
    $(".ui-menu-item").collapseAll(); 
}); 

我想要的子菜單中消失過一次,我用鼠標離開

+4

爲什麼要禁止任何人對你要求上述??? – techfoobar

+0

它會對我說「缺乏搜索努力」 –

+0

@RolandFeghaly:如果你正確地發佈了一個問題,做你的研究並展示一些代碼(希望用小提琴),你的問題總是會受到歡迎 –

回答

2

我覺得你這會有所幫助。

<ul>標記添加類submenu

HTML

<ul id="menu"> 
    <li><a href="#">Item 1</a></li> 
    <li><a href="#">Item 2</a></li> 
    <li><a href="#">Item 3</a> 
     <ul class="submenu"> 
      <li><a href="#">Item 3-1</a></li> 
      <li><a href="#">Item 3-2</a></li> 
      <li><a href="#">Item 3-3</a></li> 
      <li><a href="#">Item 3-4</a></li> 
      <li><a href="#">Item 3-5</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Item 4</a></li> 
    <li><a href="#">Item 5</a></li> 
</ul> 

JQuery的

$(".submenu").mouseout(function(){ 
    $(".submenu").hide(); 
}); 
$(".submenu").mouseover(function(){ 
    $(".submenu").show(); 
}); 

演示網址:http://api.jquery.com/mouseout/

+0

呃,鼠標懸停是不是會打開所有子菜單?也許你的意思是$(this).show/hide()? – Cuse70

2

UPDATE:

我找到更好的文檔在http://api.jqueryui.com/menu/,它好像你要使用的collapseAll方法上mouseleave。此更新小提琴:http://jsfiddle.net/FwBNE/7/

$(document).ready(function() { 
    var menu = $("ul.menu").menu(); 
    $(menu).mouseleave(function() { 
     menu.menu('collapseAll'); 
    }); 
});​ 

ORIGINAL:

這似乎工作:

$(document).ready(function() { 
    var menu = $("div#menu > ul.menu").menu(); 
    menu.menu('widget').hide(); 
    $('div#menu').hover(function() { 
     menu.menu('widget').show(); 
    }, function() { 
     menu.menu('widget').hide(); 
    }); 
    $(menu).hover(function() { 
     menu.menu('widget').show(); 
    }, function() { 
     menu.menu('widget').hide(); 
    }); 
});​ 

更新小提琴:http://jsfiddle.net/FwBNE/4/

+0

我很感謝你的幫助,但爲什麼你隱藏了第一個菜單,不能和第一個菜單一樣顯示? –

+0

我在urs上做了一些改變,http://jsfiddle.net/GdBTc/1/,但仍然有一個親,如果你離開,邊界仍然在菜單 –

+0

如果你想第一個菜單總是打開,那麼你的原始小提琴(http://jsfiddle.net/FwBNE/)做你想做的事情(無論如何,在Chrome中)。是否有一個特定的瀏覽器,你看到這個問題? – pete