Javascript 按住shift键的同时按下箭头键

Javascript 按住shift键的同时按下箭头键,javascript,jquery,input,switch-statement,readonly,Javascript,Jquery,Input,Switch Statement,Readonly,我有一个拼图,我想做它,这样用户可以按下shift键并按住它,同时使用箭头键在单元格之间上下移动。已设置的单元格与其他单元格一样是标记,但它们具有只读属性。每个单元格都有一类“拼图单元格”和一个id,id以“c”开头,后跟它们所在的行号、一个“-”,然后是单元格号 下面第三个单元格,左边第五个单元格的id为“c3-5”。每个单元格都有一个id,因此我认为可编辑的输入将有一个类似于以下内容的属性onkeyup=“shiftArrows(this)”。我的问题是我应该在shiftArrows()中放

我有一个拼图,我想做它,这样用户可以按下shift键并按住它,同时使用箭头键在单元格之间上下移动。已设置的单元格与其他单元格一样是
标记,但它们具有
只读属性。每个单元格都有一类“拼图单元格”和一个id,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键的同时是否按下了箭头。

这是否处理了您的目标

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

JS Fiddle:

这能处理你想要的东西吗

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

JS Fiddle:

这能处理你想要的东西吗

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

JS Fiddle:

这能处理你想要的东西吗

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


JS Fiddle:

我可以在
onkeyup
属性中设置多个函数吗?看看我的Fiddle,它处理不同的按键,对我不起作用。此外,use可能希望使用event.which而不是event.keyCode进行跨浏览器推理,错误的Fiddle链接现在应该可以工作,请确保在结果窗格中单击以尝试。另外,根据你的建议,我改为event.which。干杯对不起,妈妈让我打麻袋我能在一个
onkeyup
属性中设置多个功能吗?看看我的小提琴,它在处理不同的按键,它对我不起作用。此外,use可能希望使用event.which而不是event.keyCode进行跨浏览器推理,错误的Fiddle链接现在应该可以工作,请确保在结果窗格中单击以尝试。另外,根据你的建议,我改为event.which。干杯对不起,妈妈让我打麻袋我能在一个
onkeyup
属性中设置多个功能吗?看看我的小提琴,它在处理不同的按键,它对我不起作用。此外,use可能希望使用event.which而不是event.keyCode进行跨浏览器推理,错误的Fiddle链接现在应该可以工作,请确保在结果窗格中单击以尝试。另外,根据你的建议,我改为event.which。干杯对不起,妈妈让我打麻袋我能在一个
onkeyup
属性中设置多个功能吗?看看我的小提琴,它在处理不同的按键,它对我不起作用。此外,use可能希望使用event.which而不是event.keyCode进行跨浏览器推理,错误的Fiddle链接现在应该可以工作,请确保在结果窗格中单击以尝试。另外,根据你的建议,我改为event.which。干杯对不起,妈妈叫我睡觉