HTML + JavaScriptで、window.addEventListenerで追加したkeydownリスナーを取り除きたいと思い、removeEventListenerで取り除こうと思ったのですが、想像していた動作をしません。コードは次の通りです。
JavaScript
1window.onload = () => { 2 window.addEventListener("keydown", onKeyDown.bind(this), false); 3} 4function onKeyDown(event) { 5 if (event.key === "Enter") { // Enterを押すと改行する 6 document.getElementById("hogehoge").innerHTML += "</br>"; 7 } else if (event.key === "Backspace") { // Backspaceを押すとキー入力が効かなくなる 8 window.removeEventListener("keydown", onKeyDown.bind(event), false); 9 } else { // それ以外はキー名が出力される 10 document.getElementById("hogehoge").innerHTML += event.key; 11 } 12}
実行してみると、Backspaceを押しても、キー入力に反応があるのでリスナーが取り除けていませんでした。JavaScriptのbindとthisの理解が怪しいので、その当たりではないかと考えているのですが、バグの原因を理解できませんでした。keydownリスナーの取り除き方を教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 10:56