2017-06-02 95 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)。