keyup javascript 上的 addEventListener 一次
addEventListener on keyup javascript once
我想在按下键盘上的 Enter 后 运行 countup();
和 random();
运行。但我想让它只对第一个 time.I 有效,意思是当我第一次按下回车键时,它会 运行 该功能。但是,如果这些功能已经 运行 而我再次按下回车键,它将永远不会产生任何影响。
这是我的代码:
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
countup();
random();
}
});
谁能帮帮我?谢谢
idea是user一个全局变量,触发事件后设置。
var is_fired = false;
addEventListener("keydown", function(e){
if (e.keyCode === 13 && is_fired == false) {
countup();
random();
is_fired = true
}
});
var is_clicked = false;
addEventListener("keydown", function(e){
if (e.keyCode === 13 && !is_clicked) {
countup();
random();
is_clicked = true;
}
});
做这样的事情
// Create a named function as your event handler
var myFunction = function (e) {
if (e.keyCode === 13) {
// Do your stuff here
countup();
random();
// Remove event listener so that next time it is not triggered
removeEventListener("keydown", myFunction);
}
};
// Bind "keydown" event
addEventListener("keydown", myFunction);
javascript 中有一个 removeEventListener 函数,但在调用 addEventListener 的函数中实现它很棘手。
试试这个,它在 jsfiddle 中有效。
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
alert("i did it");
this.removeEventListener('keydown',arguments.callee,false);
}
});
您可以添加一个变量来检查您的按键状态。
第一次使用它时,将其设置为 true。所以你只会触发一次这个功能。
var n = document.getElementById("txtInput"),
r = document.getElementById("result"),
loadFlag = true;
n.addEventListener("keyup", function(e) {
if (e.keyCode === 13 && loadFlag ) {
countup(r);
random(r);
loadFlag = false;
}
}, false);
您可以让点击事件侦听器在触发后仅工作一次 it.you 只需向 addEventListener()
添加另一个参数,即 {once:true}
它会按预期工作:
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
countup();
random();
}
},{once: true});
检查我的它与你的情况相似。
您也可以只使用 removeEventListener()
方法,但您应该先将匿名函数定义为 myKeyPressed()
之类的外部函数,然后在内部 if 条件从您的元素中删除事件侦听器:
element.removeEventListener("keydown", myKeyPressed);
将 keydown 添加到 HTML 代码中的元素。
element.addEventListener("keydown", event => {
//check if event is cancelable because not all event can be cancelled
if(event.cancelable)
{
//this prevent element from executing the default event when user click
event.preventDefault()
if(event.keycode === 13){ //write your statement here }
}
}
我想在按下键盘上的 Enter 后 运行 countup();
和 random();
运行。但我想让它只对第一个 time.I 有效,意思是当我第一次按下回车键时,它会 运行 该功能。但是,如果这些功能已经 运行 而我再次按下回车键,它将永远不会产生任何影响。
这是我的代码:
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
countup();
random();
}
});
谁能帮帮我?谢谢
idea是user一个全局变量,触发事件后设置。
var is_fired = false;
addEventListener("keydown", function(e){
if (e.keyCode === 13 && is_fired == false) {
countup();
random();
is_fired = true
}
});
var is_clicked = false;
addEventListener("keydown", function(e){
if (e.keyCode === 13 && !is_clicked) {
countup();
random();
is_clicked = true;
}
});
做这样的事情
// Create a named function as your event handler
var myFunction = function (e) {
if (e.keyCode === 13) {
// Do your stuff here
countup();
random();
// Remove event listener so that next time it is not triggered
removeEventListener("keydown", myFunction);
}
};
// Bind "keydown" event
addEventListener("keydown", myFunction);
javascript 中有一个 removeEventListener 函数,但在调用 addEventListener 的函数中实现它很棘手。 试试这个,它在 jsfiddle 中有效。
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
alert("i did it");
this.removeEventListener('keydown',arguments.callee,false);
}
});
您可以添加一个变量来检查您的按键状态。 第一次使用它时,将其设置为 true。所以你只会触发一次这个功能。
var n = document.getElementById("txtInput"),
r = document.getElementById("result"),
loadFlag = true;
n.addEventListener("keyup", function(e) {
if (e.keyCode === 13 && loadFlag ) {
countup(r);
random(r);
loadFlag = false;
}
}, false);
您可以让点击事件侦听器在触发后仅工作一次 it.you 只需向 addEventListener()
添加另一个参数,即 {once:true}
它会按预期工作:
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
countup();
random();
}
},{once: true});
检查我的
您也可以只使用 removeEventListener()
方法,但您应该先将匿名函数定义为 myKeyPressed()
之类的外部函数,然后在内部 if 条件从您的元素中删除事件侦听器:
element.removeEventListener("keydown", myKeyPressed);
将 keydown 添加到 HTML 代码中的元素。
element.addEventListener("keydown", event => {
//check if event is cancelable because not all event can be cancelled
if(event.cancelable)
{
//this prevent element from executing the default event when user click
event.preventDefault()
if(event.keycode === 13){ //write your statement here }
}
}