javascript - 检查循环函数中是否按下了特定键

标签 javascript html

所以我的脚本有一个循环函数,旨在当按下特定键(a键)时打印出一个字符串,如果没有按下,则打印出不同的字符串,以便当按住该键时它将连续打印第一个字符串。我已经尝试了大约 30 种不同的方法来让它注册,但没有任何效果。该函数从另一个函数开始运行,而不是当我按下 div 上的按钮时,所以我不想听到任何 onKeyDown 来运行该函数,我需要它不断运行并检查何时按下该键

function legs(interval, key, text) {

    if (foot == true) {
        text.innerHTML = 'Left Foot<br/><br/>' + text.innerHTML;
    } else {
        text.innerHTML = 'Trip!<br/><br/>' + text.innerHTML;
    }

    setTimeout(function(){legs(interval, key, text)},interval);
}

它传递给的间隔是500,键是'a',文本是它打印字符串的div。谁能帮我解决这个问题吗?

最佳答案

使用 bool 变量keyPressed。在文档上使用 keydown 事件来监视 a 键。如果按下,则更改变量 keyPressed = true。然后在 keyup 上设置keyPressed = false

使用 jQuery:

var keyPressed = false;

$(document).keydown(function(e){
        var keycode = e.keyCode || e.which;

        //if a key is held down
        if(keycode == 65){
            keyPressed = true;
        }


    });

$(document).keyup(function(e){
        var keycode = e.keyCode || e.which;

        if(keycode == 65){
            keyPressed = false;
        }
    });

使用普通的 JavaScript:

document.onkeydown = function(e){
        var keycode = e.keyCode || e.which;

        //if a key is held down
        if(keycode == 65){
            keyPressed = true;
        }


    }

document.onkeyup = function(e){
        var keycode = e.keyCode || e.which;

        if(keycode == 65){
            keyPressed = false;
        }
    }

关于javascript - 检查循环函数中是否按下了特定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22024463/

相关文章:

javascript - 更改从文件加载的 SVG 的颜色

html - 如何消除所有设备上输入文本和按钮之间的差距?

html - 溢出和宽度问题

javascript - 将 JSON 从 JStree 发送到 MSSQL DB

javascript - Sequelize 更新或创建包含的关联

javascript - iframe 视频显示不正确

javascript - 在 Canvas 上创建多个对象

javascript - 如何在php文件中调用jquery函数

javascript - JQuery DataTables - 不显示数据

html - 图像在 Outlook 2007/2010 中被截断