2013-03-18 115 views
0

我在主菜單中有一個嵌套的子菜單。當用戶將鼠標懸停在主菜單項上時,圖像淡入並淡出。子菜單也是如此。Jquery:在主菜單懸停時停止子菜單項上的效果

我的問題是當我將鼠標懸停在其嵌套的子菜單上時,主菜單項的圖像不會淡出。我曾嘗試使用.not()(例如:.not('ul li')),但無效。

我也嘗試直接在子菜單項懸停時直接定位父項,也沒有效果。 (例如:$(this).parent().parent().find("a").html();

有誰知道一種方法來修改我的腳本,以便懸停在第一個菜單項不會影響第二個嵌套的項目?

//FADE SUB MENU IMAGES  
$("#menu > ul > li > ul > li").hover(
     function() { 
     var linktext = $(this).find("a").html(); 
     $('img[alt="' + linktext + '"]').stop().fadeIn('100'); 
     //FADEOUT PRIMARY MENU ITEM IMAGE 
     var linktexttop = $(this).parent().parent().find("a").html(); 
     $('img[alt="' + linktexttop + '"]').stop().fadeIn('100'); 
     }, 
     function() { 
     var linktext = $(this).find("a").html(); 
     $('img[alt="' + linktext + '"]').fadeOut('100'); 
     } 
    ); 

編輯:添加小提琴:

http://jsfiddle.net/veW7B/3/

在小提琴 - 當子菜單懸停我只想藍色方塊顯示,但不能同時

+0

心靈創造一個小提琴惹,可能有助於此相伴:) – tymeJV 2013-03-18 23:40:25

+0

@tymeJV確定 - 請在五張框中檢查 – MeltingDog 2013-03-18 23:42:56

+0

@tymeJV添加小提琴:http://jsfiddle.net/veW7B/3/注意當您將鼠標懸停在子菜單項上時,兩個彩色正方形都會顯示。我只想要顯示藍色方塊 – MeltingDog 2013-03-19 00:02:27

回答

2

您可以使用has()not()來選擇哪個'li'有一個孩子,哪個不是。

使用$('li').has('ul').hover()用於主禮,並使用$("li:not(:has(ul))").hover()的子菜單

我已經更新您在這裏提琴http://jsfiddle.net/veW7B/5/