我没有使用Javascript。我希望有人能够简单地解释编辑以下代码的过程。
this.hideNextButton();
this.hidePreviousButton();
var that = this;
Event.observe(document, 'keydown', function keydownCallback(e) {
var choiceID = null;
switch (e.keyCode) {
case 74: // 'j' was pressed
choiceID = 1;
break;
case 75: // 'k' was pressed
choiceID = 2;
break;
}
if (choiceID) {
Event.stopObserving(document, 'keydown', keydownCallback);
that.setChoiceValue(choiceID, true);
that.clickNextButton();
}
});
如果用户想要点击键盘上的字母来替换鼠标点击,例如。单击J查看下一个问题或选择是,单击A.我认为这是此代码正在执行的操作但我想稍微分开添加或删除字母以完成其他任务,例如下一个问题等。
任何帮助或指向正确的方向都是有帮助的!
答案 0 :(得分:0)
当按下键j
时,您需要跟踪尖头元素并调用指向元素的click事件。
var pointedElement;
document.onmousemove = function(e) {
pointedElement = e.srcElement;
}
document.onkeydown = function(e) {
switch (e.keyCode) {
case 74: // 'j' was pressed
pointedElement.click()
break;
}
}
编辑:我的回答是关于用另一个键更改整个窗口中的单击元素的想法,但在您的情况下,它是不同的。我只能通过查看此片段来帮助您,但您需要使用相同的按钮功能更改开关盒块。那些按钮到底在做什么?您需要调用下一个和以前的键处理相同的功能。
答案 1 :(得分:0)
在你提供的代码中按下' j'或者' k'通过设置选择值来回答当前问题并转到下一页。要添加其他键盘按下,您可以使用适当的键码将其他情况添加到交换机。例如,如果你想要' j'要转到下一页并且' a'回答'是',它会是这样的(删除if(choiceID)部分):
Event.observe(document, 'keydown', function keydownCallback(e) {
switch (e.keyCode) {
case 65: // 'a' was pressed
that.setChoiceValue(1, true);
break;
case 74: // 'j' was pressed
Event.stopObserving(document, 'keydown', keydownCallback);
that.clickNextButton();
}
});