Я делаю кроссворд и пытаюсь заставить фокус перемещаться вправо и влево с помощью клавиш со стрелками и после ввода буквы, но она застревает на квадратах с числами в них.
Вот так выглядит мой html для div с числами в них.
enter co<div><input class="letter" type="text" disabled /> </div>
<div><input class="letter" type="text" disabled /> </div>
<div class="wrapper">
<input class="letter hideletter" type="text" maxlength="1" value="" placeholder="D" />
<span class="num">1</span>
</div>
<div><input class="letter" type="text" disabled /> </div>
<div><input class="letter" type="text" disabled /> </div>
Jquery:
//makes arrow keys work, but only works right to left and left to right at this point
$(document).keydown(
function (e) {
//makes focus jump to next input when a letter is typed
$(".hideletter:focus").on('input', function() {
$(".hideletter:focus").next().focus();
});
switch (e.which) {
case 39: //right
$(".hideletter:focus").next().focus();
$(".num:focus").next().focus();
break;
case 40: //down doesn't work
$(".hideletter:focus").next().focus();
$(".num:focus").next().focus();
break;
case 37: //left
$(".hideletter:focus").prev().focus();
$(".num:focus").prev().focus();
break;
case 38: //up doesn't work
$(".hideletter:focus").next().focus();
$(".num:focus").next().focus();
break;
default: return; // exit this handler for other keys
}
e.preventDefault(); // prevent the default action (scroll / move caret)
});
Вот ссылка на кроссворд. https://jenniferlang1921.github.io/Crossword2/
Вот ссылка на мой код: https://github.com/JenniferLang1921/Crossword2
Кроме того, если у вас есть идеи о том, как перемещать стрелки вверх и вниз, это было бы замечательно.
Спасибо!