Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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_Jquery - Fatal编程技术网

Jquery 如果下拉列表可见,则将类添加到父li

Jquery 如果下拉列表可见,则将类添加到父li,jquery,Jquery,我有一个非常标准的基于CSS的下拉菜单。主列表是mainNav,下拉列表只是mainNav ul。mainNav ul最初的显示为none,当您将鼠标悬停在其父li上时,其显示设置为block。当嵌套的ul可见时,我想添加hilite类,这与a:hover属性相同。因此,当下拉列表可见时,父li将高亮显示 当嵌套的ul可见时,以li为目标: $(function(){ if($('#mainNav ul').css({display: "block"})){ $("#ma

我有一个非常标准的基于CSS的下拉菜单。主列表是mainNav,下拉列表只是mainNav ul。mainNav ul最初的显示为none,当您将鼠标悬停在其父li上时,其显示设置为block。当嵌套的ul可见时,我想添加hilite类,这与a:hover属性相同。因此,当下拉列表可见时,父li将高亮显示

当嵌套的ul可见时,以li为目标:

$(function(){
    if($('#mainNav ul').css({display: "block"})){
        $("#mainNav li:nth-child(3)").addClass("hilite");
    }
});
html

<ul id="mainNav" class="clearfix">
        <li><a href="contact.php" target="_self">CONTACT</a></li>
        <li><a href="events.php" target="_self">EVENTS</a></li>
        <li><a href="current-line.php" target="_self">CURRENT LINE</a>
            <ul>
                <li><a href="#" target="_self">2009 Fall</a></li>
                <li><a href="#" target="_self">2009 Spring</a></li>
                <li><a href="#" target="_self">2008 Fall</a></li>
                <li><a href="#" target="_self">2008 Spring</a></li>
            </ul>
        </li>
        <li><a href="shop.php" target="_self">SHOP</a></li>
        <li><a href="press.php" target="_self">PRESS</a></li>
        <li><a href="bio.php" target="_self">BIO</a></li>
        <li><a href="index.php" target="_self">HOME</a></li>
    </ul>

尝试以下几点:

$("#mainNav ul li ul").hover(
  function(){ // Mouse Over
   $(this).parent().addClass("hilite");
  },
  function(){ // Mouse Out
    $(this).parent().removeClass("hilite");
  }
);

尝试以下几点:

$("#mainNav ul li ul").hover(
  function(){ // Mouse Over
   $(this).parent().addClass("hilite");
  },
  function(){ // Mouse Out
    $(this).parent().removeClass("hilite");
  }
);

我将上面的内容修改为这个mainNav ul,以简单地针对嵌套的ul,然后将css更改为这个ulmainNav li.hilite>a,因为我只能针对父li,而不是li中的“a”,并且它可以工作。我应该用一种更干净的方法还是另一种方法来做这件事呢?我已经尝试了几种不同的方法,而且似乎总是回到这一步。如果你发现了什么让我知道,我总是想学习新的方法。我修改了上面的这个mainNav ul来简单地针对嵌套的ul,然后将css改为这个ulmainNav li.hilite>a,因为我只能针对父li,而不是li中的“a”,并且它可以工作。我应该用一种更干净的方法还是另一种方法来做这件事呢?我已经尝试了几种不同的方法,而且似乎总是回到这一步。如果你发现了什么让我知道,我总是想学习新的方法。