私はキーを押したときに、私の機能がkeydownイベントをログに記録していないという理由が混乱していますか?私のイベントリスナーにKeydownが機能しない
window.addEventListener('keydown', function(e) {
console.log(e);
});
<h1> Start typing </h1>
私はキーを押したときに、私の機能がkeydownイベントをログに記録していないという理由が混乱していますか?私のイベントリスナーにKeydownが機能しない
window.addEventListener('keydown', function(e) {
console.log(e);
});
<h1> Start typing </h1>
私は正しいアプローチがドキュメントオブジェクトではなく、ウィンドウオブジェクトを使用しなければならないと考えています。
次のようなコードは動作するはずです:
document.addEventListener('keydown', function(e) {
console.log("event", e);
});
https://stackoverflow.com/a/2671217/211627 – JDB
@JDBウィンドウの代わりにドキュメントを使用する理由を説明するリンクを探していました。 –
これは便利かもしれません:https://stackoverflow.com/questions/33110338/window-document-addeventlistener-vs-window-addeventlistener/33110391#33110391 –
あなたのスニペットは大丈夫のようです。だから、それを実行する周囲の環境と関係しているかもしれません。
(つまり、document
を使用して他の答えはすでにあなたを助けにはならなかった場合。)
それが失敗した状況を調査してください。考えられる理由は、keyEvent
がバブルの方法に沿った任意のEventListenerによって取り消される可能性があります。
は、ウィンドウレベル(ドキュメントレベルよりも高いレベル)の最上位にフェッチしています。
イベントの途中でバブリングが停止しても、表示されません。
は例えば
document.addEventListener("keydown", function(e) {
e.stopPropagation();
});
をお試しくださいまた、これはあなたのorignalのイベントリスナーでKeyDownイベントを見てからあなたを防ぐことができます。
正常に動作しています。再度確認してください。コンソールのエラーもチェックしてください。 – Rajesh