2011-07-06 4 views
0

私のeformの上部にナビゲーションバーがあり、次のdivと前のdiv(ページ/セクション)にスキップします。 divは、チェックボックスをオンにしない限り隠されます。ナビゲーションバーの次のボタンは、常に次の利用可能なdivに移動する必要があります。DOMオブジェクトのループスルー配列と最初に一致するものを見つけよう

次のコードは最初のボタンで機能しますが、これらのナビゲーションバーは各セクションの上部に表示されるので、次のセクションには同じ機能を実行する次のボタンがあります(これはうまくいかない)exlpain私がここにいるので、私が意味をなさないのであれば叫んでください。ここに私のコードです。

function showNext(){ 

    var pages = [document.getElementById("page2"),document.getElementById("page3")]; 
    var next = ["page2marker","page3marker"]; 

    for (var i=0; i<pages.length; i++){ 
     if(pages[i].style.display == "block"){ 
      window.location.hash = next[i]; 
     } 
    } 
} 

この機能をすべてのボタンで機能させるように修正できますか?私はいつも表示されている次の利用可能なdivにナビゲートすることによって?私はおそらく、トリックと情報のすべての負荷を逃したと思うが、どのようなアイデア、任意のアイデアを参照してください?

感謝

+0

でしょうが、ページをさせると、次のパラメータがこの機能をよりダイナミックにするために役立つので、のに有用であること:あなたが好きなものを使用することができ

<nav><a class="showNext">Show Next</a></nav> <div class="content" style="display:none">I'm hidden</div> <div class="content">I'm Visible</div> 

他のセクション?次に、パラメータをどこでも変更したり、セクションごとにラッパー関数を作成することができます。 –

答えて

0

あなたはjQuery.next機能を使用してこれはjQueryを達成することができます - http://api.jquery.com/next/

このようなHTMLのセットについて

$('.showNext').bind('click', function(e) { 
    e.stopPropagation(); 
    e.preventDefault(); 
    window.location.hash = $(this).next('.content:visible').attr('id') + 'marker'; 
}); 
関連する問題