假设我有这样的代码:
function onKeystroke(e)
{
if (e.keyCode == 39) //Arrow Right
{
currentCell += 1;
}
if (e.keyCode == 37) //Arrow Left
{
currentCell -= 1;
}
if (e.keyCode>47 && e.keyCode<58) //Numbers 0-9
{
cells[currentCell] = e.keyCode - 48;
}
}
但我不仅需要获得一个数字,还需要两位数。程序的行为应该是这样的: - 如果用户移动到一个空单元格并按下“2”键,则单元格中会出现数字“2”。如果他现在按“3”,数字变为“23”。下一个按键(比如说“7”)重新开始,并在单元格中放入“7”。- 如果用户移动到已经写有“2”的单元格,然后按“3”,则只有“3”出现,随后的“7”笔划使其变为“37”。
因此,移出单元格应该“关闭”它,类似于 MS Excel 中发生的情况。
我知道我可以跟踪处于打开或关闭状态的单元格,但这需要将单元格“关闭”附加到所有运动功能。这有点问题,因为我的实际程序中有两个以上。这并非不可能,但我想知道是否有更好的方法,这样我就可以通过为 if (e.keyCode>47 && e.keyCode<58) 案例编写正确的脚本来获得预期的行为......