Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.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_Css_Navigation - Fatal编程技术网

Jquery 将鼠标悬停在第三级li上时,在导航栏中高亮显示第二级li

Jquery 将鼠标悬停在第三级li上时,在导航栏中高亮显示第二级li,jquery,css,navigation,Jquery,Css,Navigation,当鼠标悬停在导航栏的任何子项上时,我希望突出显示导航栏的第二级父项;顶层具有完全不同的样式,因此不适用于我尝试执行的操作,因此当我将鼠标悬停在任何第三层项目上时,我希望设置第二层的样式。我知道javascript/jquery是实现这一目标的方法,因此由于我的技能不符合要求,我遇到了困难 以下是我的标准html导航结构: <nav class="primary-navigation"> <ul> <li><a href="#"

当鼠标悬停在导航栏的任何子项上时,我希望突出显示导航栏的第二级父项;顶层具有完全不同的样式,因此不适用于我尝试执行的操作,因此当我将鼠标悬停在任何第三层项目上时,我希望设置第二层的样式。我知道javascript/jquery是实现这一目标的方法,因此由于我的技能不符合要求,我遇到了困难

以下是我的标准html导航结构:

<nav class="primary-navigation">
     <ul>
         <li><a href="#">TOP LEVEL</a>
             <ul>
                 <li><a href="#">SECOND LEVEL</a>
                     <ul>
                         <li><a href="#">THIRD LEVEL</a></li>
                         <li><a href="#">THIRD LEVEL</a></li>
                         <li><a href="#">THIRD LEVEL</a></li>                    
                     </ul>
                 </li>
             </ul>
         </li>
     </ul>
</nav>

提前感谢

问题是,您在完整的
li
元素上使用了highlight类。如果只将突出显示的
添加到链接中,则该链接有效

$('.third').mouseenter(function() {
    $(this).parent().find('a.second').addClass('highlighted');
}).mouseleave(function() {
    $(this).parent().find('a.second').removeClass('highlighted');
});

这里的工作示例:

如果这只适用于第三级,那么这就足够了:

$('.primary-navigation ul ul ul li').hover(
    function(){
        $(this).parent().parent().addClass('highlighted');
    },
    function(){
        $(this).parent().parent().removeClass('highlighted');  
    }
);

你为什么要在没有类的情况下工作?没有特别的理由,只是为了让我的代码尽可能小!这不是问题所在。问题是第三层也被突出显示,因为它被第二层
li
标记包围。那么这很可能是css样式的问题。你能发布相关的css吗?我猜子li继承了父li的css属性。在中,需要使用li styleing.Np中的显式定义覆盖.hilight类中指定的属性。如果是回答您的问题,只需单击柜台下方的绿色复选框接受答案,以向其他人表明您的问题已被回答。
$('.primary-navigation ul ul ul li').hover(
    function(){
        $(this).parent().parent().addClass('highlighted');
    },
    function(){
        $(this).parent().parent().removeClass('highlighted');  
    }
);