Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery下拉菜单悬停状态_Javascript_Jquery_Css_Hover_Drop Down Menu - Fatal编程技术网

Javascript jQuery下拉菜单悬停状态

Javascript jQuery下拉菜单悬停状态,javascript,jquery,css,hover,drop-down-menu,Javascript,Jquery,Css,Hover,Drop Down Menu,我的问题是: 我有一个下拉菜单,我希望当我悬停在菜单上时,文本颜色改变,当我悬停在子菜单上时,悬停状态保持不变。我使用以下代码: $("ul li").hover(function () { $(this).stop().animate({ backgroundColor: "white"}, 500); }, function () { $(this).stop().animate({ backgroundColor: "black"}, 400); }); } 在

我的问题是:

我有一个下拉菜单,我希望当我悬停在菜单上时,文本颜色改变,当我悬停在子菜单上时,悬停状态保持不变。我使用以下代码:

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

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

},
function () {

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

});

}
在“悬停在”菜单和子菜单中设置背景色动画

我想将悬停时文本的颜色更改为菜单和子菜单的不同颜色,而不是相同颜色的动画。为此,我使用以下代码:子菜单示例,例如菜单示例,将选择器更改为$'ul.menu li a'

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

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

},
function () {

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

});
所有这些都很好,但当我悬停子菜单时,菜单将返回到原始颜色状态,因为鼠标移动在菜单悬停时被激活

我想要的是,当我悬停在子菜单中时,菜单中的悬停状态也保持活动状态

我尝试了很多东西,但都给我带来了问题,唯一有效的是css,但我也需要控制文本的颜色

有效的CSS:

使用这个css代码,我可以用css控制菜单的颜色,当我悬停子菜单时,菜单将保持活动状态,但子菜单使用jquery.hover

有人能帮忙吗?谢谢

HTML菜单:


如果要在悬停其他li之前设置当前颜色,请使用类

css:

js:

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

[编辑]

哦,嗯,也许你想要它,所以当你转到子菜单时,你的父母李不应该失去它的颜色,尽管你鼠标退出。如果是这样,同样的想法也适用,您只需要鼠标悬停代码在菜单项mouseover上选择鼠标悬停,这样鼠标悬停在菜单上会取消所有其他菜单的设置,并设置此菜单,如果您将鼠标悬停在其子菜单的ul上,则还需要让它删除菜单的类颜色。我不知道你的菜单在结构上是什么样子的,所以我不能评论这个选择器的CSS

哦,最后你需要一个css规则vs.子菜单悬停来处理子菜单的高亮显示


很抱歉回答得太笼统了……

您能提供菜单的完整代码和标记吗?很难弄清楚要部署什么。我用Html标记编辑我的问题。ThanksHello,我的悬停状态适用于菜单和子菜单,使用不同的颜色和背景色动画,我唯一的问题是当我悬停菜单项时,颜色会发生变化,如果我转到子菜单,菜单颜色会恢复到原始颜色,这就是我的问题。如果我把你的代码只放在鼠标上,我也有同样的问题,但是谢谢!啊,我刚刚看到你的回答-我认为你应该能够使用$'ul.menu li'。mouseout关闭你的ul.menu li a的类-这应该覆盖整个menu+子菜单,因为li包含整个子菜单。如果我不清楚,你想处理'menu li a'。通过添加类,b通过添加您想要的css hover类来处理子菜单,c通过捕获$'menu li'。mouseout并使用:$this.children'a.hovered'。removeClass'hovered'来处理菜单或子菜单外的鼠标移动。好的,我会尝试,但我现在不会。如果我使用$'ul.menu li'选择器,菜单和子菜单将返回到相同的颜色,因为就像你说的ul.menu li a的类-应该涵盖整个菜单+子菜单。谢谢
ul li:hover a {
    color: #FFF;
}
<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>
ul.submenu li a { color: #0f0; }
ul.submenu li a.hovered { color: #fff; }
$('ul.submenu li a').mouseover( function() {
   if (!$(this).hasClass('hovered')) {
      $('ul.submenu li a.hovered').removeClass('hovered');
      $(this).setClass('hovered');
   }
});