2013-07-22 71 views
1

我想获得一个第三级菜单时,其第一级父扩展自动扩展。所以,在这个例子中我有,当你将鼠标悬停在第一个项目我想第1项子菜单显示(正常人一样),然后又下第一子菜单。第2项也应该显示。 http://jsfiddle.net/n2Sxc/1/jquery菜单用户界面。自动展开第三级子菜单时,第2级子菜单扩展

我曾尝试使用此代码,这是在的jsfiddle。

$("#main-nav li").mouseover(function() { 
    $("#main-nav li ul li.first ul").show(); 
}); 

我也看了一下api文档,但是我不清楚如何使用扩展或焦点。我不确定这是否甚至是我想使用的。

焦点:http://api.jqueryui.com/menu/#event-focus

展开:http://api.jqueryui.com/menu/#method-expand

启动菜单

$('#main-nav').menu({ 
    focus: function(focus, ui) { 
     $("#main-nav li").hover(function(){ 
      $("#main-nav li ul li.first ul").show(); 
     }); 
    } 
}); 

回答

0

是,焦点,当我也试过这种扩大是你所需要的。你不需要.show()。

我不知道是否你的鼠标悬停不会与正常的菜单事件处理冲突。一开始,为了得到至少一些简单的工作,像下面这样的代码可以在菜单创建后自动扩展子菜单(为了简化选择器,也许你可以添加ID到你的菜单项,我怀疑你的选择器是否选择什么意):

$("#main-nav").menu() 
.menu("focus",null,$("#main-nav > li.first")) 
.menu("expand") 
.menu("focus",null,$("#main-nav > li.first > ul > li.first")) 
.menu("expand"); 

在目前的jQuery-UI-1.10.3 + jQuery的2.0.3这段代码实际上失败了一些空元素访问...这是jQuery中的错误。现在我无法找到的bug票,但我看到它已经解决,并会在下一个版本是好的。