为了账号安全,请及时绑定邮箱和手机立即绑定

检测javascript中按键的最简单方法

检测javascript中按键的最简单方法

PIPIONE 2019-10-19 16:31:59
我有一个使用javascript进行游戏的想法(我将使用EaselJS进行开发),并且我将不得不检测按键。在互联网上四处浏览后,我看到了很多建议(使用window.onkeypress,使用jQuery等),但是几乎每个选项都有一个反对意见。你们有什么建议?使用jQuery听起来很容易,但是我实际上对该库没有任何经验(而且我也不是JavaScript的资深人士),所以我宁愿避免使用它。如果jQuery是最好的选择,那么有人可以举一个很好的例子(说明会很棒)吗?我猜这被问了很多,但是我找不到任何明确的答案。提前致谢!
查看完整描述

3 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

KEYPRESS 

(输入键)


香草:


document.addEventListener("keypress", function(event) {

    if (event.keyCode == 13) {

        alert('hi.')

    }

})

香草速记:


this.addEventListener('keypress', event => {

    if (event.keyCode == 13) {

        alert('hi.')

    }

})

jQuery的:


$(this).on('keypress', function(event) {

    if (event.keyCode == 13) {

        alert('hi.')

    }

})

jQuery经典:


$(this).keypress(function(event) {

    if (event.keyCode == 13) {

        alert('hi.')

    }

})

jQuery简写:


$(this).keypress((e) => {

    if (e.which == 13) {

        alert('hi.')

    }

})

甚至更短:


$(this).keypress(e=>

    e.which==13?

    alert('hi.'):null

)


查看完整回答
反对 回复 2019-10-19
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

使用event.key和现代的JS!

没有数字代码了。您可以使用"Enter","ArrowLeft","r",或任意键名称直接,使你的代码更具可读性。


document.addEventListener("keypress", function onEvent(event) {

    if (event.key === "ArrowLeft") {

        // Move Left

    }

    else if (event.key === "Enter") {

        // Open Menu...

    }

});


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 470 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信