この問題は私をかなり長い間混乱させ、解決策は結局、古いバージョンのjQueryをGoogleCDNからロードすることを余儀なくされました。
私はこの構造でメニューを作成しました:
<ul>
<li class="top-nav">
<a href="#">Top Item One</a>
<ul class="sub-nav hidden">
<li>Sub Item One</li>
<li>Sub Item Two</li>
<li>Sub Item Three</li>
</ul>
</li>
<li class="top-nav">
<a href="#">Top Item Two</a>
<ul class="sub-nav hidden">
<li>Sub Item One</li>
<li>Sub Item Two</li>
<li>Sub Item Three</li>
</ul>
</li>
... etc ...
</ul>
非常にシンプルなトグル機能があるので、「トップナビゲーション」をクリックすると、サブナビゲーションが下にスライドして表示されます。
$('li.nav-top>a').toggle(function(){
$(this).addClass('active');
$(this).siblings('.nav-sub').slideDown(100);
}, function(){
$(this).removeClass('active');
$(this).siblings('.nav-sub').slideUp(100);
});
信じられないほど紛らわしいのは、最新バージョンのjQueryでは、このコードによってすべてのtop-nav
リストアイテムが折りたたまれて消えてしまうことです。これは単なるトグルであり、トップレベルのアイテムをターゲットにしていないため、理由がわかりません。
(サイトはwww.sjofasting.noです)