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

标签 javascript jquery input switch-statement readonly

我有一个Sudoku我想制作它,以便用户可以按下 Shift 键并按住它,同时使用箭头键在单元格之间上下移动。已设置的单元格为 <input>标签与其他标签类似,但它们具有 readonly属性。每个单元格都有一个“puzzle_cells”类和一个以“c”开头的 id,后跟它们所在的行号、“-”,然后是单元格编号。

因此,向下第三个单元格,左起第五个单元格的 ID 为“c3-5”。每个单元格都有一个 id,所以我认为可编辑的输入将具有类似这样的属性 onkeyup="shiftArrows(this)" 。我的问题是我该输入什么 shiftArrows()

它可能会这样开始:

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

但是我必须测试按下 Shift 键时是否按下了箭头键。如果shift+down按下或 shift+up其正上方或正下方的单元格是 'readonly' ,然后它会转到正确的位置并再次检查。如果是'readonly' ,它会转到左边两个,并会像这样继续检查。如果shift+right按下后,它将继续向右移动,直到找到空行,或者如果必须的话跳到下一行。 shift+left 也是如此.

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

最佳答案

这能满足您的需求吗?

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

JS fiddle :http://jsfiddle.net/stroz/hrQEX/3/

关于javascript - 按住 Shift 键的同时按下箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502647/

相关文章:

javascript - 如何在单个 Chrome 扩展程序中的不同 URL 上运行不同的 javascript 文件

c# - javascript 警报无法在 Razor 代码中显示其消息

c - 从 C 中的输入文件扫描直到到达某个字符 (#)?

javascript - 将用户输入保存在变量中,然后发布该变量

html - 在 html 表格中对齐按钮。 IE问题(楼梯问题)

javascript - 如何使用 While 循环继续更改元素

javascript - 在javascript中内部对象文字之间使用函数

javascript - 填充 block 规则问题

javascript - IE8 jquery json响应触发下载

javascript - 如何选择正确的 'this' 选择器?