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を表示しようとしています。さまざまな方法 (兄弟、親、検索、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 に答える