键盘 event.code 在移动设备中不起作用 (sveltekit)

keyboard event.code doesnt work in mobile (sveltekit)

提问人:Christian Angelo 提问时间:11/16/2023 更新时间:11/16/2023 访问量:35

问:

如何处理手机中的键盘输入,尤其是“空格”键,因为当我使用 event.key、event.keyCode、event.code 时,没有任何工作,空格不起作用,它就像 event.code 不同,我有研究如何处理键盘但没有任何效果

 function handleKeyDown() {
        if (event.code === "Space") {
            event.preventDefault();

            if (game === "in progress") {
                nextWord();
            }
        }

        if (event.code === "Backspace") {
            event.preventDefault();
            checkPrevLetter();
        }

        if (game === "waiting for input") {
            startGame();
        }
}
function nextWord() {
        const isNotFirstLetter = letterIndex !== 0;
        const isOneLetterWord = words[wordIndex].length === 1;

        if (isNotFirstLetter || isOneLetterWord) {
            if (wordIndex < words.length) {
                const wordEl = wordsEl.children[wordIndex];
                const letterEls = wordEl.querySelectorAll(".letter");
                for (let i = letterIndex; i < letterEls.length; i++) {
                    letterEls[i].dataset.letter = "skipped";
                }
            }

            wordIndex += 1;
            letterIndex = 0;
            increaseScore();
            moveCaretToNextWord();
        }
    }

这就是我在按空格键后处理键并转到下一个单词的方式,您可以在移动设备上的 type-masters.vercel.app 中尝试一下,当在最后一个字母和按空格键时,它不能像桌面版那样转到下一个单词,谢谢您的回答!

JavaScript svelte sveltekit

评论

1赞 brunnerh 11/16/2023
也许改用事件?input
0赞 brunnerh 11/16/2023
(您可以从事件的 data 属性中读取添加的内容。似乎没有捕获粘贴,因此该事件可能也需要处理。paste

答: 暂无答案