2011-07-06 86 views
0

我的電子表格頂部有一個導航欄,跳到下一個和上一個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]; 
     } 
    } 
} 

我可以修改此功能,以便它可以用於所有按鈕。即通過總是導航到下一個可見的可見分區?我想我可能錯過了一個技巧和一整套信息,但看到你的想法,任何想法?

非常感謝

+0

將讓網頁和明年是參數有助於使該功能更加動態,從而成爲有用其他部分?然後,您可以隨時更改參數或爲每個部分創建包裝函數。 –

回答

0

您可以用jQuery.next功能做到這一點使用jQuery - http://api.jquery.com/next/

對於這樣一組HTML的:

<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> 

您可以使用類似:

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