2012-09-07 55 views
0

我有一個ul列表和下面的im使用jquery來查明用戶是否將鼠標懸停在關於我們的子菜單下,如果是在懸停上設置一些css。這確實將背景顏色更改爲綠色,但是當我將鼠標懸停在綠色上時不會消失?用jquery修改css

JQUERY

$('ul > li > ul > li a').hover(
    function(){ 
     var whatami = $(this).parents('li').eq(1).find('a[title]:first').attr('title'); 
     console.log(whatami); 
     if (whatami == 'About Us') { 
      //alert(whatami); 
      $('.white ul.mega-menu li .sub-container.non-mega li a:hover').css({"background-color":"green"}); 

     } 
    }, 
    function(){ 
    }); 
+0

你能提供一個小提琴嗎? – karthikr

+0

請在jsfiddle上提供您的html代碼。 – Codegiant

+3

爲什麼不添加一個類到'關於我們'菜單,並制定一個特定於它的CSS規則? a.green:hover {background-color:green; } – Brant

回答

2

的:懸停只是一個元素選擇,這是不一樣的CSS:懸停。嘗試類似:

$('.white ul.mega-menu li .sub-container.non-mega li a').hover(
    function() { 
     $(this).css({"background-color":"green"}); 
    }, 
    function() { 
     $(this).css({"background-color":"none"}); 
    } 
); ​ 
3

的方式懸停工作原理是,當鼠標進入和第二個是鼠標離開時執行執行第一功能。你在第二個函數中沒有任何東西,所以這意味着當鼠標離開時什麼都不會發生。你需要做的要在第二個函數做什麼:

$('ul > li > ul > li a').hover(
function(){ 
    // make it green 
}, 
function(){ 
    // CHANGE IT BACK HERE 
}); 
+0

一個優化(很多)沒有價值,你可以用'.closest('li')'替換'.parents('li')。eq(1)'。 JQuery有一個函數。在評論中發帖,因爲它與實際問題無關。 –

0

.white ul.mega-menu li .sub-container.non-mega li a是你應該用什麼作爲你的選擇,你的電流選擇ul > li > ul > li a更一般化。

嘗試使用任何$(this)在jQuery的設置綠色