顯示非嵌套/非嫡系兄弟導航我有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