我有一个数独难题,我想做它,这样用户就可以按shift键并按住它,同时使用箭头键在单元格之间上下移动。与其他单元格一样,已经设置的单元格是<input>标记,但它们具有readonly属性。每个单元格都有一个'puzzle_cells‘类和一个id,以'c’开头,后面跟着他们所在的行号,'-',然后是单元格号。
所以,第三个细胞向下,从左边的第五个将有一个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键。
发布于 2014-07-01 04:59:48
这能处理你想要的东西吗?
if (event.shiftKey && event.which == 38) {
//shift was down when up arrow pressed
}JS Fiddle:http://jsfiddle.net/stroz/hrQEX/3/
https://stackoverflow.com/questions/24502647
复制相似问题