jqueryのクリックイベントでサブメニューを表示するメインメニューがあります(クライアントはホバーの代わりにクリックしたかったので)、それが機能しましたが、まだ1つのことがわかりません:メニューとサブメニューが正しく機能しているので「ニュース」をクリックするとサブメニューがうまくスライドし、「ニュース」をクリックして戻ると閉じますが、ニュースのサブメニューを開いて「リソース」をクリックすると、それぞれのサブメニューが表示されますが、ニュースのサブメニューは開いたままです。別のメニュー項目をクリックしたとき、またはメイン メニュー領域の外側をクリックしたときに、前のサブメニューを閉じたいですか? ここに私が得たものがあります:
<ul id="MainMenu">
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li>
<a href="#">News</a>
<ul class="noJS">
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
</ul>
</li>
<li><a href="#">Jobs</a></li>
<li><a href="#">Contact Us</a></li>
<li><a href="#">Admin</a></li>
<li>
<a href="#">Resources</a>
<ul class="noJS">
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
</ul>
</li>
<li class="lastChild"><a href="#">New Button</a></li>
</ul>
そしてjquery:
$(function(){
$('#MainMenu').find('> li').click(function(){
$(this).find('ul')
.stop(true, true).slideToggle(400);
return false;
});
});