2010-12-14 159 views
0

我的问题是:jQuery的下拉菜单悬停状态

我有一个下拉菜单,我想,当我将鼠标悬停在菜单中的文本颜色的变化,当我将鼠标悬停在子菜单悬停状态保持两个。我使用此代码:

$("ul li").hover(function() { 

    $(this).stop().animate({ backgroundColor: "white"}, 500); 

}, 
function() { 

    $(this).stop().animate({ backgroundColor: "black"}, 400); 

}); 

} 

在菜单和子菜单中悬停时为背景颜色设置动画效果。

我想改变悬停文字的颜色(不同的菜单和子菜单,不同的颜色动画)。为此,我用这个代码:(子菜单例如,对于菜单例如,更改选择器$(“ul.menu李一”)

$('ul.submenu li a').hover(function() { 

$(this).css({color:'#FFFFFF'}); 

}, 
function() { 

$(this).css({color:'#00FF00'}); 

}); 

所有这工作得很好,但是当我将鼠标悬停在子菜单返回原来的颜色状态(因为鼠标离开时菜单上激活悬停出)。

所有我想要的是,当我将鼠标悬停在子菜单菜单悬停状态保持活动状态为好。

我试过很多东西但所有给我的问题,只有那件作品是CSS,但我也需要控制文本颜色dinamically也。

CSS的作品:

ul li:hover a { 
    color: #FFF; 
} 

(这个CSS代码我控制与CSS菜单的颜色,当我徘徊在子菜单保持在活跃状态,但子菜单与jQuery .hover作品) 。

任何人都可以帮忙吗?谢谢!

HTML菜单:

<ul class="menu"> 

     <li><a href="#">text</a></li> 

     <li><a href="#">text</a> 

     <ul class="submenu"> 
      <li><a href="#">text</a></li> 
      <li><a href="#">text</a></li> 
      <li><a href="#">text</a></li> 
     </ul> 

     </li> 

     <li><a href="#">text</a> 

</ul> 
+0

你能提供完整的代码和菜单的标记吗?很难了解正在尝试部署的内容。 – DeaconDesperado 2010-12-14 15:37:21

+0

我用Html Markup编辑我的问题。谢谢 – Sbml 2010-12-14 15:46:46

回答

0

如果你想徘徊,直到你悬停其他一些利,利用班设置当前颜色。

CSS:

ul.submenu li a { color: #0f0; } 
ul.submenu li a.hovered { color: #fff; } 

JS:

$('ul.submenu li a').mouseover(function() { 
    if (!$(this).hasClass('hovered')) { 
     $('ul.submenu li a.hovered').removeClass('hovered'); 
     $(this).setClass('hovered'); 
    } 
}); 

我希望我理解正确你。祝你的项目好运。

[编辑]

哦HM,也许你想它,所以当你走下车到子菜单,你的父母李应不失去它的颜色,尽管你鼠标移动了。如果是这样,同样的想法是适用的,你只需要鼠标悬停代码来选择菜单项mouseover(所以在菜单上移动鼠标悬停所有其他菜单,并设置这一个),那么你也需要删除你的菜单的类颜色,如果你将鼠标移出其子菜单的ul。我不知道你的菜单看起来像结构化的,所以我不能评论这个选择器的工作CSS。

哦,最后你会想有一个CSS规则与子菜单悬停来处理你的子菜单的突出显示。

对不起,这个散乱的答案...

+0

你好,我的悬停状态适用于菜单和子菜单,不同的颜色和背景颜色的动画,我唯一的问题是当我悬停菜单项,颜色变化,如果我去子菜单的颜色回到原来的颜色,这是我的问题。如果我把你的代码只适用于鼠标悬停,我有同样的问题,但谢谢! – Sbml 2010-12-14 16:00:19

+0

啊,我刚刚看到你的回复 - 我认为你应该可以使用$('ul.menu li')。mouseout来关闭你的ul.menu li a的课程 - 这应该覆盖整个菜单+子菜单,因为li包含整个子菜单。 – btx 2010-12-14 16:01:20

+0

如果我不清楚,你想a)通过添加类来处理菜单li a'.mouseover,b)通过添加你想要的css hover类来处理子菜单,以及c)处理菜单外的鼠标或子菜单通过捕获$('menu li')。mouseout和使用:$(this).children('ahovered')。removeClass('hovered') – btx 2010-12-14 16:02:24