2017-06-02 67 views
-2

我有一個大的無序列表。當列表有焦點時,我可以使用箭頭鍵上下移動列表,但是當我到達最後一個鏈接時,如果再次按向下箭頭,我需要它將焦點返回到第一個鏈接。另外,如果我在第一個鏈接上並按向上箭頭,我需要它將焦點放在最後一個鏈接上。在列表結尾滾動到頂部

我曾嘗試與第一個孩子和最後一個孩子玩耍,但無法解決如何做到這一點。非常感激任何的幫助。我有一個jsFiddle玩弄。

我已經嘗試了不少的東西,這裏是一個例子:

$("ul li a:last-child:after")$(this).parents('li').find('a:first-child'); 
+0

* .oO(...有些關於[jQuery](https://learn.jquery.com/)的讀物已被跳過...)* **太寬了!** –

+0

@Louys Patrice Bessette對不起我剛開始學習jQuery。我無法正確包裹頭部。 – Greg

+0

[Chat?](https://chat.stackoverflow.com/rooms/145750/jquery-very-basics) –

回答

1

如前所述,強烈建議您檢查出learn.jquery網站。

作爲一個解決方案:

建設關中Focus on list item on down arrow press答案,已經將通過所有的項目滾動。你需要做的是檢查當前選擇的項目是否是最後一個。 jQuery有.last()方法,當你給它一個元素數組時,它會返回最後一個元素。在這個例子中,它也把一個類的active到當前選定的元素,所以你只需要檢查的最後一個項目擁有一流的「活動」,你可以用做:

$("li").last().hasClass("active")

然後,如果這是真的,你想選擇第一個項目。 jQuery也有.first(),它與.last()相反。所以,你想選擇的第一要素:

$("li").first().focus();

請記住,在當一個元素是代碼示例「重點」它得到了類「活動」應用到它。

工作這裏的解決方案:https://jsfiddle.net/38zR3/766/

如果你想反其道而行之,當有人得到頂端自動轉到底部,只是把對面碼成的「如果鍵向上」的部分(這是關鍵代碼38)。