Quadratics:用鼠标点击替换键盘笔画
Quadratics: Replace Keyboard stroke for Mouse clicks
我在 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 回答下一个问题或 select 是的,单击 A。我认为这就是这段代码的作用,但我想将其分开一点以添加或删除字母以完成其他任务,例如下一个问题等
任何帮助或指向正确方向的帮助!
您需要跟踪指向的指向元素,并在按下j
键时调用指向元素的点击事件。
var pointedElement;
document.onmousemove = function(e) {
pointedElement = e.srcElement;
}
document.onkeydown = function(e) {
switch (e.keyCode) {
case 74: // 'j' was pressed
pointedElement.click()
break;
}
}
编辑:我的回答只是关于用另一个键更改整个 window 中的点击元素的想法,但在您的情况下,它是不同的。我无法仅通过查看此代码段来帮助您,但您需要更改具有相同按钮功能的开关盒块。这些按钮到底在做什么?您需要调用下一个和上一个键正在处理的相同功能。
在您提供的代码中,按 'j' 或 'k' 通过设置选项值回答当前问题并转到下一页。要添加其他键盘按键,您可以使用适当的键码将其他情况添加到开关。例如,如果您希望 'j' 直接转到下一页,而 'a' 回答 'Yes',它会像这样(删除 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();
}
});
我在 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 回答下一个问题或 select 是的,单击 A。我认为这就是这段代码的作用,但我想将其分开一点以添加或删除字母以完成其他任务,例如下一个问题等
任何帮助或指向正确方向的帮助!
您需要跟踪指向的指向元素,并在按下j
键时调用指向元素的点击事件。
var pointedElement;
document.onmousemove = function(e) {
pointedElement = e.srcElement;
}
document.onkeydown = function(e) {
switch (e.keyCode) {
case 74: // 'j' was pressed
pointedElement.click()
break;
}
}
编辑:我的回答只是关于用另一个键更改整个 window 中的点击元素的想法,但在您的情况下,它是不同的。我无法仅通过查看此代码段来帮助您,但您需要更改具有相同按钮功能的开关盒块。这些按钮到底在做什么?您需要调用下一个和上一个键正在处理的相同功能。
在您提供的代码中,按 'j' 或 'k' 通过设置选项值回答当前问题并转到下一页。要添加其他键盘按键,您可以使用适当的键码将其他情况添加到开关。例如,如果您希望 'j' 直接转到下一页,而 'a' 回答 'Yes',它会像这样(删除 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();
}
});