2014-03-05 103 views
0

我有點新來的JavaScript,並有一個鏈接列表作爲菜單,最後一個按鈕是爲了下一個按鈕,誰將去依賴於哪個頁面或#hash你的下一個鏈接目前正在使用。「next」 - 基於哈希URL的鏈接。 (javascript)

<li><a class="menu" href="#home"><div>Home</a></li> 
    <li><a class="menu" href="#work">Work</a></li> 
    <li><a class="menu" href="#about">About</a></li> 
    <li><a class="menu" href="#">Next</a></li> 

所以,如果forexample你的工作頁面上,下一步按鈕會送你到有關網頁,如果你是對網頁上,它會送你到主頁。

我想它與數組和一些JavaScript有關,因爲它必須實時工作,但不知道如何去做。

希望有人能解釋或給我一個提示。

在此先感謝!

回答

1

這是很容易的,並且不需要任何額外的陣列(我已經給「下一步」 - 鏈接標識next使它輕鬆地定位,能夠)

$("#next").on("click", function (e) { 
    e.preventDefault(); 
    var currentLink = location.hash ? $("a.menu[href=" + location.hash + "]") : null, 
     next = currentLink ? currentLink.parent().next() : null; 
    if (!next || next.children().attr("id") == "next") { 
     next = $("a.menu").first().parent(); 
    } 
    if (next) { 
     location.hash = next.children().attr("href"); 
    } 
}); 

做些什麼:

如果location.hash包含一個值,它會嘗試根據href與找到a.menu元素。
如果發現它會得到下一個LI。 如果它沒有發現任何東西,或者發現LI包含a:next鏈接,那麼它將獲得第一個LI

最後,它將找到的LI的(如果有的話)第一個孩子的href值分配給location.hash

查看全屏版本實際查看完整代碼的散列值變化:http://jsfiddle.net/ve9qt/3/show/http://jsfiddle.net/ve9qt/3/