2016-03-06 91 views
0

我有一个内嵌块框列表。第一个框设置为活动并高亮显示。通过使用箭头键,我想将它旁边的框设置为活动状态。哪个JS事件最适合这里?使用箭头键选择并突出显示元素

js fiddle

HTML

<ol> 
<li class="active"></li> 
<li></li> 
<li></li> 
</ol> 

JS

$(document).keydown(function(e) { 
switch(e.which) { 
    case 37: // left 
    $('li').addClass('active'); 
    break; 

    case 38: // up 
    $('li').addClass('active'); 
    break; 

    case 39: // right 
    $('li').addClass('active'); 
    break; 

    case 40: // down 
    $('li').addClass('active'); 
    break; 

    default: return; // exit this handler for other keys 
} 
e.preventDefault(); // prevent the default action (scroll/move caret) 
}); 

CSS

li { 
display: inline-block; 
padding: 50px; 
border: solid; 
counter-increment: step-counter; 
margin: 20px; 
} 

回答

0

请检查该fiddle

向上和向下可能是不准确的,因为这取决于纸张的风格

您可以使用索引来指定元素

 index--; 
    if (index==-1){index=$("#orderedList li").length-1;} 
    $('li').removeClass('active'); 
    $($('li')[index]).addClass('active'); 
+0

THX的指标,我在问题中添加了css,其中包括框的宽度 – user1477955

+0

@ user1477955它仍然取决于页面的宽度以及每行有多少个框 –

+0

需要检查每行有多少个框,并通过数字增加索引每行盒子 –