检测keyCode的值是否等于数组中的项

时间:2014-07-07 10:27:20

标签: javascript char keycode

我正在构建一个小型打字机应用程序,我在检测按下的按钮是否与span元素的值相对应时遇到问题。

基本上,我有两个div,其中包含不同字母值的跨度。 我将跨度存储在名为leftPartSpans和rightPartSpans的变量中。所以我基本上尝试用循环遍历每个项目,看看它们中的任何字符是否对应于keyCode:

for (i=0; i<leftPartSpans.length; i++) {

            if(pressedKey == leftPartSpans[i].nodeValue) {

                leftPart.style.webkitTransform = "rotateZ(20deg)";

            }

        }

不幸的是,这并没有成功。您可以在http://codepen.io/gbnikolov/pen/wJHhk

查看整个项目

提前致谢, 的Georgi

1 个答案:

答案 0 :(得分:2)

keydownkeyup不会为大写和小写字母发送不同的密钥代码。因此,当您使用其中任何一个事件时,pressedKey始终是一个大写字母。由于您的所有跨度都包含小写字母,因此它们永远不会匹配,并且永远不会触发if

您可以使用keypress来为大写和小写发送不同的键码。

document.querySelector('body').addEventListener('keypress', function(e) {
  //...
});