2012-02-22 203 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