2011-02-24 39 views
0

目前,我有以下腳本:鼠標懸停導航,如果掉了下來

http://jsfiddle.net/oshirowanen/mnXdv/

如果在導航的一個點擊,它滴下來的正常工作,即如果在另一個點擊,現有下拉菜單消失,另一個下拉菜單出現,如果我點擊文檔上的任何位置,無論打開哪個導航,它都會消失。

如何添加鼠標懸停,以便其他導航自動下拉,如果另一個導航已經下降。但是,如果沒有導航下拉,導致下拉菜單,則必須單擊它才能下拉菜單等等。

回答

1

可能的解決方案:

http://jsfiddle.net/mnXdv/8/

雖然我贊成使用<ul>「s的CSS樣式來控制.active狀態,所以使用Javascript將變得簡單多了,是這樣的:

function makeActive(el) { 
    $('.menu .active').removeClass('active'); 
    $(el).parent().addClass('active'); 
} 

$('.menu li a').click(function() { 
    makeActive(this); 
}); 

$('.menu li a').hover(function() { 
    if ($('.menu .active').length == 0) { 
     return; 
    } 
    makeActive(this); 
}); 
1

如果我理解正確,您要使用.hover()

$('.navigation').click(function(event) { 
    $(this).siblings('.navigation.active').click(); 
    $(this).toggleClass('active').next().toggle(); 
    event.stopPropagation(); 
}).hover(function() { 
    $(this).siblings('.navigation.active').click(); 
    $(this).toggleClass('active').next().toggle(); 
}, function() {}); 

更新fiddle

+0

但是,如果沒有下拉選項,懸停應該不起作用,以便激活懸停,下拉必須已經放下,一旦所有下拉關閉,懸停都不起作用。 – oshirowanen 2011-02-24 13:51:35