javascript - 事件监听器按键问题

标签 javascript

我有一个事件监听器,所以对于某些键,它会做一些不同的事情,依此类推,首先,如果不起作用,按“-”不会触发写入的命令,但其他两个可以完美地工作! 第二个输入 Enter 后立即提交,第三个拒绝除数字之外的任何内容。

第一个可能有什么问题?

document.querySelector(".header__input").addEventListener("keypress", function (evt) {
if (evt.keyCode === 109 || evt.which === 109 || evt.keyCode === 189 || evt.which === 189){
    operation = "-";
    alert("sucecss")
}
else if (evt.keyCode === 13 || evt.which === 13){
    starter();
}
else if (evt.which < 48 || evt.which > 57)
{
    evt.preventDefault();
}
});

最佳答案

我不确定为什么你在减法符号上遇到问题。但是,我应该指出按键已被弃用。 Mozilla docs

我建议使用 keydown。像这样:

var x = document;
x.addEventListener('keydown', function (evt) {
    if (evt.keyCode === 109 || evt.which === 109 || evt.keyCode === 189 || evt.which === 189) {
        operation = "-";
        alert("sucecss")
    }
    else if (evt.keyCode === 13 || evt.which === 13) {
        starter();
    }
    else if (evt.which < 48 || evt.which > 57) {
        evt.preventDefault();
    }
})

关于javascript - 事件监听器按键问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60494275/

相关文章:

javascript - 使用 jQuery 将字符串中的第一个字母(带有字母和数字)大写

javascript - 使用 jQuery,是否可以让它检测某个链接类并打开它们?

javascript - 在 JavaScript 中的 Promises 中捕获 Promises 中生成的错误

javascript - 具有多个根和动态需求的 Webpack

javascript - 为什么我们在原型(prototype)继承中使用临时盒子?

javascript - 添加 ajax 后, knockout 可观察数组未更新

javascript - Object.prototype 不支持选项 [方法名称]

javascript - 如何使用回调函数修复错误?

javascript - 是否可以故意减慢 Javascript Interpreter 的速度?

javascript - 使用模板库从 ajax 请求接收 json 数据后生成 html 代码的最佳方法是什么?