Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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
Jquery 将鼠标悬停在父li上时,使子li变为白色,反之亦然_Jquery_Html_Css - Fatal编程技术网

Jquery 将鼠标悬停在父li上时,使子li变为白色,反之亦然

Jquery 将鼠标悬停在父li上时,使子li变为白色,反之亦然,jquery,html,css,Jquery,Html,Css,首先让我描述一下我遇到的问题。请访问了解我在说什么。必须是一个页面,不能是主页,这样你才能看到我在说什么 好的,请将鼠标悬停在菜单上,至少是有子菜单的菜单上。您会注意到,当您将鼠标悬停在父li上时,子li将变为“不可见”,因为它与背景颜色相同。反之亦然,如果将鼠标悬停在子元素上 我需要弄清楚的是,我相信你已经猜到了,只要鼠标在其中一个上面,另一个也会变白 我已经完成了以下一些伪代码: $('li.menu-parent-current > li.menu-child-current a')

首先让我描述一下我遇到的问题。请访问了解我在说什么。必须是一个页面,不能是主页,这样你才能看到我在说什么

好的,请将鼠标悬停在菜单上,至少是有子菜单的菜单上。您会注意到,当您将鼠标悬停在父
li
上时,子
li
将变为“不可见”,因为它与背景颜色相同。反之亦然,如果将鼠标悬停在子元素上

我需要弄清楚的是,我相信你已经猜到了,只要鼠标在其中一个上面,另一个也会变白

我已经完成了以下一些伪代码:

$('li.menu-parent-current > li.menu-child-current a').hover(
    function() {
        $(this).css('color', '#fdfdfd');
    }, function() {
        if (/* mouse leaves parent as well */) {
            // change child color to blue
        } else if (/* mouse did not leave parent */) {
            // make child color white
            $(this).css('color', '#fdfdfd');
        }
    });
毫无疑问,这方面还有改进的余地,因此,如果需要,请继续提供更好的版本。:)

过去几个小时我一直在讨论这个问题,但我无法解决它,我相信它很简单,但我不是jQuery专家。感谢您提供的帮助。:)

编辑:


嗯。。。结果是我把事情复杂化了。作为一个相对的新手并不能让你正确思考P

除非我遗漏了什么,否则jquery在这里就太过分了。简单的css就足够了:

li:hover{
    background-color: blue;
    color: white;
}
子级
li
从父级继承颜色


除非我遗漏了什么,否则jquery在这里就太过分了。简单的css就足够了:

li:hover{
    background-color: blue;
    color: white;
}
子级
li
从父级继承颜色


您应该能够使用CSS而不是jQuery的“.hover()”来实现这一点。但是,您现有的CSS已经存在一些冲突的
:hover
样式,不能很好地处理折叠的jQuery
.hover()
行为


我会首先清理CSS,如果你必须使用jQuery,那么至少你会有一个更干净的板岩。

你应该能够用CSS而不是jQuery的“.hover()”来完成这项工作。但是,您现有的CSS已经存在一些冲突的
:hover
样式,不能很好地处理折叠的jQuery
.hover()
行为

我会首先清理CSS,如果你必须使用jQuery,那么至少你会有一个更干净的列表。

只需使用

#menu li:hover a {
    color: white;
}
简单使用

#menu li:hover a {
    color: white;
}

尝试以下简单的css添加

#menu li:hover a{
  color: #FDFDFD;
}

希望它能帮助

尝试以下简单的css添加

#menu li:hover a{
  color: #FDFDFD;
}

希望它能帮助您使用CSS和jQuery实现这一点

如果您希望使用CSS实现这一点:

li:hover a{color:#fff;}
li:hover ul li a{color:#fff;}
如果您想用jQuery实现这一点:

$('ul li').hover(
  function(){$(this).find('a').css('color','#fff');},
  function(){$(this).find('a').css('color','##36c');}
);

您可以使用CSS和jQuery来实现这一点

如果您希望使用CSS实现这一点:

li:hover a{color:#fff;}
li:hover ul li a{color:#fff;}
如果您想用jQuery实现这一点:

$('ul li').hover(
  function(){$(this).find('a').css('color','#fff');},
  function(){$(this).find('a').css('color','##36c');}
);

这是一个很好的答案,继续努力。:)我本想说“新人”,但我不想显得傲慢P感谢所有提供答案的人!不过,这是最干净的,所以谢谢大家。:)这是一个很好的答案,继续努力。:)我本想说“新人”,但我不想显得傲慢P感谢所有提供答案的人!不过,这是最干净的,所以谢谢大家。:)