Hof*_*ffZ 3 html javascript navigation jquery focus
当链接没有包含在其他元素中时,我能够改变焦点.
这有效:
HTML
<a id="first" href="#" class='move'>Link</a>
<a href="#" class='move'>Link</a>
<a href="#" class='move'>Link</a>
Run Code Online (Sandbox Code Playgroud)
JS(使用jQuery)
$(document).keydown(
function(e)
{
// Down key
if (e.keyCode == 40) {
$(".move:focus").next().focus();
}
// Up key
if (e.keyCode == 38) {
$(".move:focus").prev().focus();
}
}
);
Run Code Online (Sandbox Code Playgroud)
但是,当链接在列表中时,如何实现相同的功能呢?像这样
<ul>
<li>
<a id="first" href="#" class='move'>Link</a>
</li>
<li>
<a href="#" class='move'>Link</a>
</li>
<li>
<a href="#" class='move'>Link</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
您可以使用.closest()查找父元素,然后使用.next()获取下一个li,然后使用.find()获取下一个.move
if (e.keyCode == 40) {
$(".move:focus").closest('li').next().find('a.move').focus();
}
// Up key
if (e.keyCode == 38) {
$(".move:focus").closest('li').prev().find('a.move').focus();
}
Run Code Online (Sandbox Code Playgroud)