2012-02-22 198 views
0

我得到了這個導航欄的下拉ul它。Jq mouseleave刪除背景懸停,防止正常的css懸停

<ul class="topbar-nav"> 
<li><a href="index.php">Home</a></li> 
<li><a href="services.php" class="fixed_hover">Services</a> 
    <ul class="drop_down"> 
     <li><a href="#">lorem</a></li> 
     <li><a href="#">lorem</a></li> 
    </ul> 
</li> 
<li><a href="contact.php">Contact</a></li> 
</ul> 

我只是把CSS的「頂欄,導航禮」

ul.topbar-nav a.selected, ul.topbar-nav a:hover{ 
    color:#000; 
    background:url(img/nav_hove.png) no-repeat; 
    margin:0; 
    padding-top:2px; 
    } 

的懸停狀態這裏是JQ代碼了slideDown /了dropdownmenu。 (我從一個教程這個代碼)

function mainmenu(){ 
$(" .topbar-nav ul ").css({display: "none"}); 
$(" .topbar-nav li ").hover(function(){ 
    $(this) 
     .find('ul:first:hidden') 
     .css({visibility: "visible",display: "none"}) 
     .slideDown(400); 

    },function(){ 
     $(this) 
      .find('ul:first') 
      .slideUp(400); 
    }); 
} 
$(document).ready(function(){ 
    mainmenu(); 
}); 

現在,一切都是完美的,但我想的CSS懸停規則(其指定nav_hove.png背景,ul.topbar-NAV利)在場時你徘徊在下拉菜單項上,我無法用CSS來做,所以我決定在jquery上自己嘗試一下,除了當我在「服務」選項卡上再次懸停時,沒有背景會發生。這是我的亂碼:

$(function fixed_hover(){ 
    $("ul.drop_down li").hover(function fixed_hover(){ 
      $(".fixed_hover").css('background', 'url(img/nav_hove.png) no-repeat'); 
     } 
    ); 
}); 
$(function fixed_hover2(){ 
     $("ul.drop_down li").mouseleave(function fixed_hover2(){ 
      $(".fixed_hover").css('background', 'none'); 
     } 
    ); 
}); 

我會感謝任何形式的幫助,我會感謝你們提前閱讀這些。如果你需要更多關於它的信息,請告訴我,但我希望我明確自己。

回答

2

在你的第二個功能,嘗試屬性設置爲空值,而不是沒有,像這樣:

$(".fixed_hover").css('background', ''); 

否則,你已經在使用一類選擇,那麼爲什麼不只是添加和刪除那?

$(function fixed_hover(){ 
    $("ul.drop_down li").hover(function fixed_hover(){ 
      $(".fixed_hover").addClass('selected'); 
     } 
    ); 
}); 
$(function fixed_hover2(){ 
     $("ul.drop_down li").mouseleave(function fixed_hover2(){ 
      $(".fixed_hover").removeClass('selected'); 
     } 
    ); 
}); 
+0

無瑕,無論你的答案爲我工作,你讓我的日子變得更加美好,謝謝你的幫助。順便說一句,有一種方法可以在css()上添加多個css參數,可以說在其中添加填充。那麼不需要回答那個問題;)。再次感謝 – Zagen 2012-02-22 03:28:04

+1

不用擔心:)。是的,這樣做很容易,只需要這樣:'.css({'left':0,'opacity':0.5})'etc – 2012-02-22 04:41:25

1

嘗試的元素添加類是這樣的:

但一定要創建一個類你的CSS ...

$('.myDiv').hover(function(){ 
    $(this).addClass('active') 


    },function(){ 
    $('.myDiv').removeClass('active') 
    }); 
+0

不幸的是,它並不適用於我,我的Dreamweaver告訴我一個語法錯誤代碼。我創建了這個類,但是我不習慣jq代碼,所以我不確定它是否是我的代碼錯誤。無論如何,我真的很感謝你的幫助,祝你有美好的一天。 ;) – Zagen 2012-02-22 03:41:35

+0

你是對的!此代碼shuld現在工作... 玩得開心:) – 2012-02-22 03:54:44