按住Shift键的同时按下箭头键

时间:2014-07-01 04:50:00

标签: javascript jquery input switch-statement readonly

我有一个Sudoku谜题,我希望这样做,以便用户可以按住Shift键并按住它,同时使用箭头键在单元格之间上下移动。已设置的单元格与其他单元格一样为<input>个标记,但它们具有readonly属性。每个单元格都有一类“puzzle_cells”&#39;以&#39; c&#39;开头的id直接跟着他们所在的行号,&#39; - &#39;,然后是单元格编号。

因此,第三个单元格向下,第五个单元格从左边开始将具有“c3-5&#39;”的id。每个单元格都有一个id,所以我认为可编辑的输入会有一个像onkeyup="shiftArrows(this)"这样的属性。我的问题是我在shiftArrows()中添加了什么?

它可能会从以下内容开始:

var input_id = $(this).attr('id');

但是我必须测试在Shift键关闭时是否按下了箭头键。如果按下shift+downshift+up并且正上方或下方的单元格为'readonly',则会转到右侧并再次检查。如果那是'readonly',它会转到左边两个,并会继续这样检查。如果按下shift+right,它将继续向右移动,直到找到空的,或者如果必须则跳到下一行。 shift+left也是如此。

无论如何,我可能会这样做,但我不知道的是如何在按住Shift键的同时测试是否按下了箭头。

1 个答案:

答案 0 :(得分:3)

这会处理你之后的事吗?

if (event.shiftKey && event.which == 38) { 
  //shift was down when up arrow pressed
}

JS小提琴:http://jsfiddle.net/stroz/hrQEX/3/