0

(对不起,代码片段在这里不起作用)

<ul>  
  <li><a href="#" title="" class="active">d</a>  
    <ul>  
      <li><a href="#" title="">d</a></li>  
      <li><a href="#" title="">d</a></li>  
    </ul>  
  </li>  
  ...  
</ul>  

$('#menu > ul > li ul').click(function (e) {  
   e.stopPropagation();  
}).not(this.parent().find('a.active')).hide();  

看一下 .not() 语句。当来自父 li 的兄弟 a 具有活动的类时,我试图让子 UL 显示。我尝试了很多方法(兄弟姐妹、父母、find、hasclass、..),但它们都不起作用。可能是因为我没有以正确的方式使用选择器..

谢谢!

4

1 回答 1

0

你可以用纯CSS来做到这一点:

.active + ul {
   display: block;
}
a + ul {
   display: none;
}

但如果你想要 jQuery,那么:

$('#menu > ul > li ul').click(function (e) {  
   e.stopPropagation();  
}).hide();
$('#menu > ul > li').has('.active').find('ul').show();

是更好的选择

于 2013-02-12T14:25:41.720 回答