显示非嵌套/非嫡系兄弟导航我有2个航区。第二个应该在第一个元素悬停时出现,如果鼠标不移过它,它应该消失。jQuery的 - 上悬停事件
非常基本上我有:
HTML
<ul class="main">
<li class="1">item 1</li>
<li class="2">item 2</li>
</ul>
<div class="sub">
<ul class="1">
<li>1 sub item 1</li>
<li>1 sub item 2</li>
</ul>
<ul class="2">
<li>2 sub item 1</li>
<li>2 sub item 2</li>
</ul>
</div>
我想ul.1当我将鼠标悬停在li.1和ul.2当我将鼠标悬停在li.2出现出现,我希望他们都只有在我没有徘徊在小组之后才会消失。
我已经得到了它的工作方式的一部分:
JAVASCRIPT
var sections = new Array('1', '2');
$.each(sections, function(i, section) {
$('ul.main li.' + section).hover(
function() {
$('div.sub ul').hide();
$('div.sub ul.' + section).show();
}
);
});
这将显示正确的部分并隐藏了别人,但我无法弄清楚如何我需要什么,这样,当鼠标离开ul.main li时,如果没有被覆盖,.sub ul会消失。
更新:小提琴这里:http://jsfiddle.net/alluvialplains/XY4mH/
你为什么不嵌套在主菜单内的子菜单?这将解决您的问题。 – Mottie 2013-02-18 22:25:43
我不是嵌套的,因为子导航需要将后面的内容向下推,但它们也需要比主导航宽,这意味着绝对定位和无内容推送:-( – EpF 2013-02-18 22:41:17
您缺少的关键元素是:#1)绑定一个'mouseleave'事件的包装div,#2)你使用的是'.hover()',但使用'.hide()'事件的包装div更容易实现绑定到它。有关更多详情,请参阅下面的答案。 – Brian 2013-02-18 23:53:47