我有一个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+down
或shift+up
并且正上方或下方的单元格为'readonly'
,则会转到右侧并再次检查。如果那是'readonly'
,它会转到左边两个,并会继续这样检查。如果按下shift+right
,它将继续向右移动,直到找到空的,或者如果必须则跳到下一行。 shift+left
也是如此。
无论如何,我可能会这样做,但我不知道的是如何在按住Shift键的同时测试是否按下了箭头。
答案 0 :(得分:3)
这会处理你之后的事吗?
if (event.shiftKey && event.which == 38) {
//shift was down when up arrow pressed
}