0

シンプルなjQuery垂直アコーディオンメニューで特定のリストアイテムをページの読み込み時に展開する方法を理解しようとしています。これをjqueryに追加して、ロード時に最初のリストアイテムを開こうとしましたが、機能していないようです。

$('#nav li:first ul').show();

jQueryの残りの部分は次のとおりです。

<script type="text/javascript">
$(document).ready(function () {
  $('#nav > li > a').click(function(){
    if ($(this).attr('class') != 'active'){
  $('#nav li ul').slideUp();
  $(this).next().slideToggle();
  $('#nav li a').removeClass('active');
  $(this).addClass('active');
$('#nav li:first ul').show();
    }
  });
});
</script>

開発ページはこちらからご覧いただけます。

ありがとうございました!

4

4 に答える 4

0

あなたは次のようなものを探していますか:

最初のリンクとして「ガーナ」を開きますか?

$(function(){$($('a','#nav')[0]).click();});
于 2012-08-15T00:36:54.143 に答える
0

jQueryアコーディオンではなく、Adobeのアコーディオンプラグインのようです。前の文のリンクはAPIを示しており、次のようなものを使用したいようです。

Accordion1.openPanel(index);

Chrome開発ツールを使用してこれを試しましたが、機能しませんでした。マークアップが正しいことを確認することをお勧めします。私はこれを調べる時間があまりありませんが、うまくいけば、それはあなたが正しい方向に向けられるようになるでしょう。

于 2012-08-15T00:40:02.020 に答える
0

すべてが.click()関数にラップされています。ページの読み込み時に開くように言っていますが、ナビゲーションアイテムが実際にクリックされるまで、そのコードは実行されません。

たぶんあなたがしなければならないのは追加することだけです$('#nav > li > a.active').next().show();(私は開くnavアイテムがactiveページのロード時にそこにクラスを持っていると仮定しています(つまり、PHPなどを介してそこに置かれます)。

$(this).attr('class') != 'active'また、私のコメントによると、代わりにuseを使用しないでください$(this).hasClass('active')。これにより、クラス内のスペースや別のクラスがある場合などの問題を防ぐことができます。

于 2012-08-15T00:44:24.170 に答える
0

この行:$('#nav li:first ul').show();jqueryスクリプトの残りの部分から分離しておく必要があります。

于 2012-08-15T00:56:36.187 に答える