2015-12-02 2 views
1

Я не продвинутый с 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 для следующего вопроса или выберите «Да», нажмите «Я». Я думаю, что это то, что делает этот код, но я хотел бы немного раздвинуть его, чтобы добавлять или удалять письма для выполнения дополнительных задач, таких как следующий вопрос и т. Д.

Любая помощь или указание в правильном направлении - это помощь!

ответ

0

В коде, который вы указали при нажатии 'j' или 'k', отвечает на текущий вопрос, установив значение выбора и перейдите на следующую страницу. Чтобы добавить другие нажатия клавиш, вы должны добавить дополнительные ключи к коммутатору с помощью соответствующего кода клавиатуры. Например, если вы хотите «J», чтобы просто перейти на следующую страницу, и «а» ответить «Да», это было бы что-то вроде этого (удалить раздел, если (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(); 
    } 
}); 
+0

Спасибо за это, я искал объяснение кода, так что помог очень. – lulaz

0

При нажатии клавиши 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; 
    } 
} 

Редактировать: Мой ответ был только об идее изменения щелчка элемента в целом окна с другим ключом, но в вашем случае, если она отличается. Я не могу вам помочь, просто просмотрев этот фрагмент, но вам нужно сменить блок блокировки с одинаковой функциональностью кнопок. Что именно эти кнопки делают? Вам нужно вызвать ту же функциональность, что и предыдущие и предыдущие клавиши.

+0

Нет, что это отличная идея, которую нужно знать, спасибо за фрагмент. Я не слишком уверен, что код может понадобиться, но я изучаю его для друга без знания кодирования, но у меня есть только C++ и несколько других. Возможно, вам понадобится дополнительная помощь, которую я знаю больше. Спасибо, сейчас! – lulaz

Смежные вопросы