【发布时间】:2020-02-06 18:45:17
【问题描述】:
所以我正在尝试一些东西,如果你有两个函数要在同一个按键后调用,如下所示:
var plus = function () {
document.addEventListener("keyup", function(e) {
if (/[+]/g.test(e.key)) {
console.log("plus");
}
})
}
plus();
var minus = function() {
document.addEventListener("keyup", function(e) {
if (/[-]/g.test(e.key)) {
console.log("minus");
}
});
}
minus();
function check() {
document.addEventListener("keyup", function(e) {
if(plus) {
if (e.keyCode == 13) {
console.log("enter pressed after plus");
plus = false;
minus = function() {
document.addEventListener("keyup", function(e) {
if (/[-]/g.test(e.key)) {
console.log("minus");
}
});
}
}
} else if(minus) {
if (e.keyCode == 13) {
console.log("enter pressed after minus");
minus = false;
plus = function () {
document.addEventListener("keyup", function(e) {
if (/[+]/g.test(e.key)) {
console.log("plus");
}
})
}
}
}
});
}
check();
如果你先按减号然后输入 console.log("enter pressed after plus") 总是首先被调用,因为代码的顺序,即使我想要做的是我希望输入对应于我首先按下的键,如果我按下加号然后我希望console.log("enter pressed after plus") 被调用,如果我先按减号然后我希望console.log("enter pressed after minus") 被调用。
任何帮助将不胜感激,并提前致谢。
哦,也对不起这个愚蠢的标题,想不出更好的标题。
【问题讨论】:
标签: javascript function dom keylistener