2012-04-19 10 views
0

JQでリンクをクリックするメニューを作成しようとすると、メニューの表示が滑り落ちます。メニュー内には、ページへの直接リンクと、別のメニューを表示するリンクの展開があります。私は、これまで取り組んでこれを持っている:メニューが閉じたときに複数のdivをスライドさせる

http://www.eadata.co.uk/testing/test.html#

何私が今やりたいことは、あなたが上部にあるリンクをクリックしたときであり、それは私がすべての拡大メニューがクローズする必要があるバックアップ切り替わります。現在は部分的に動作しており、切り替えたときに上部のサブメニューを隠すだけです。メニューを元に戻すと、メニューはすべて閉じられます。

私はこれを解決しようとしていますが、まだJQを学んでいます。 PHPは私のものです! :)

また、このメニューでは、マウスがメニュー領域を離れると設定した時間後にバックアップを切り替えることができますか?

+0

まず、私はあなたが何をしたいのか、すでに得た:)しかし、あなたの元に、私は深刻な問題を見たと思います。複数の場所で同じIDを使用しています。 IDは、ドキュメント全体の要素に対して単一でなければなりません。要素グループを識別するためにそれを使用する場合は、クラスまたはrelなどを使用することができます – Tarun

答えて

1

まず、この(バージョンONE)を試してみてください。

は(自分のCSSを忘れてはいけない)すべてのNAV-レベル-2をクラスではないIDを与えます。これは助けない場合

$(".nav-level-2").slideUp('slow'); 

、これを使用する:あなたは、このクラスを持つすべての要素を取得するにはjQueryので$('#nav-container').find('.nav-level-2')を使用することができます

。これを使用すると、これを使用することができます:

はすべてあなたのNAV-レベル-2固有のIDを付けて、配列にそれらすべてを保存し、FOR-を使用します。

for(var i = 0; i < $('#nav-container').find('.nav-level-2').length; i++) { 
    $('#nav-container').find('.nav-level-2').eq(i).slideUp('slow'); 
} 

をこれで解決しない場合は、これを使用ループを実行してすべてのレベルを閉じます。彼らが閉じている場合は、彼らがアニメーションではないでしょう:私はあなたの例を見て、すべての

var levelarray = new Array('nav-level-2-a', 'nav-level-2-b', 'nav-level-2-c'); 
for(var i = 0; i < levelarray.length; i++) { 
    $('#' + levelarray[i]).slideUp('slow'); 
} 
+0

私はjsfiddleで私のソリューションのバージョンを1つ作成しました:http://jsfiddle.net/pRgb3/ – WolvDev

+0

それは素晴らしいです!ありがとう!とにかく、あなたが拡張アイテムをクリックすると、他の拡張アイテムを閉じますか?一度に1つしか見せないのですか? –

+0

jsfiddle:http://jsfiddle.net/pRgb3/1/を更新しました。 '$(" nav-level-2 ")を追加しました。slideUp( 'slow');'あなたの2番目の関数 – WolvDev

関連する問題