2017-08-08 42 views
1

私はキーを押したときに、私の機能がkeydownイベントをログに記録していないという理由が混乱していますか?私のイベントリスナーにKeydownが機能しない

window.addEventListener('keydown', function(e) { 
 
    console.log(e); 
 
});
<h1> Start typing </h1>

+0

正常に動作しています。再度確認してください。コンソールのエラーもチェックしてください。 – Rajesh

答えて

2

私は正しいアプローチがドキュメントオブジェクトではなく、ウィンドウオブジェクトを使用しなければならないと考えています。

次のようなコードは動作するはずです:

document.addEventListener('keydown', function(e) { 
    console.log("event", e); 
}); 
+0

https://stackoverflow.com/a/2671217/211627 – JDB

+0

@JDBウィンドウの代わりにドキュメントを使用する理由を説明するリンクを探していました。 –

+0

これは便利かもしれません:https://stackoverflow.com/questions/33110338/window-document-addeventlistener-vs-window-addeventlistener/33110391#33110391 –

0

あなたのスニペットは大丈夫のようです。だから、それを実行する周囲の環境と関係しているかもしれません。

(つまり、 documentを使用して他の答えはすでにあなたを助けにはならなかった場合。)

それが失敗した状況を調査してください。考えられる理由は、keyEventがバブルの方法に沿った任意のEventListenerによって取り消される可能性があります。

​​は、ウィンドウレベル(ドキュメントレベルよりも高いレベル)の最上位にフェッチしています。

イベントの途中でバブリングが停止しても、表示されません。

は例えば

document.addEventListener("keydown", function(e) { 
    e.stopPropagation(); 
}); 

をお試しくださいまた、これはあなたのorignalのイベントリスナーでKeyDownイベントを見てからあなたを防ぐことができます。

関連する問題