![](/img/trans.png)
[英]JavaScript copy Input value to innerHTML on keyup (addEventListener)
[英]addEventListener on keyup javascript once
我想運行countup();
和random();
我在鍵盤上輸入后的功能。 但是我想這是第一次唯一的工作。我的意思是當我第一次點擊進入時,它將運行該功能。 但是如果這些功能已經運行並再次點擊輸入,它將永遠不會產生任何影響。
這是我的代碼:
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
countup();
random();
}
});
有人可以幫幫我嗎? 謝謝。
做這樣的事情
// 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);
Idea是用戶的全局變量,在觸發事件后設置它。
var is_fired = false;
addEventListener("keydown", function(e){
if (e.keyCode === 13 && is_fired == false) {
countup();
random();
is_fired = true
}
});
你可以在觸發它之后使click事件監聽器只工作一次。你只需要為addEventListener()
添加另一個參數,即{once:true}
,它將按預期工作:
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
countup();
random();
}
},{once: true});
檢查我的問題,這與你的情況類似。
你也可以使用removeEventListener()
方法,但是你應該在之前定義你的Anonymous函數作為myKeyPressed()
類的外部函數,然后在內部如果條件從你的元素中刪除事件Listener:
element.removeEventListener("keydown", myKeyPressed);
var is_clicked = false;
addEventListener("keydown", function(e){
if (e.keyCode === 13 && !is_clicked) {
countup();
random();
is_clicked = true;
}
});
在javascript中有一個removeEventListener函數,但在你調用addEventListener的函數中實現它是很棘手的。 試試這個,它在jsfiddle中運行。
addEventListener("keydown", function(e){
if (e.keyCode === 13) {
alert("i did it");
this.removeEventListener('keydown',arguments.callee,false);
}
});
您可以添加變量來檢查keydown的狀態。 第一次使用它時,將其設置為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);
將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 }
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.