У меня есть массив с буквами, которые я хочу повторить с помощью клавиш вверх и вниз, а затем выберите букву с enter и перейдите к следующему с enter, но я не знаю, как достичь что. До сих пор я получил это:Перейдите через массив и перейдите к следующему элементу при нажатии клавиши
var i = 0;
var letters = ['a','b','c','d','e']
$(document).ready(function() {
$(document).keypress(function(e) {
e.preventDefault();
var keyCode = e.which;
arrow = {up: 38, down: 40, enter: 13};
switch(e.keyCode)
{
case arrow.up:
alert('up');
break;
case arrow.down:
alert('down');
break;
case arrow.enter:
$('#box').html(letters[++i % letters.length]);
break;
}
});
});
Итак, мой первый вопрос: Это идет через массив на клавишу ввода, но я не могу изменить значение ключа. Если я хочу, чтобы клавиша «вниз» перебирала массив, ничего не происходит, что я делаю неправильно? И второе: как я могу сделать, чтобы перейти к новому письму на клавиатуре?
Update:
Окей, теперь я ближе к тому, что я хотел:
case arrow.up:
$('#letterbox').html(letters[--i % letters.length]);
break;
case arrow.down:
$('#box').html(letters[++i % letters.length]);
break;
case arrow.enter:
$('#box2').html(letters[++i % letters.length]);
break;
вверх и вниз ключевых итерацию через массив и введите печатает новую букву в DIV '#box2'
но он продолжает итерацию первого окна. Как я могу сделать массив итерацией из текущего поля?
'e.which' является одним из [событий-свойств нормализуемых JQuery] (https://api.jquery.com/category/events/event-object /); OR представляется избыточным. –
Я не знаю, почему я это сделал. Пробовал разные решения, когда учился ... – jdo