2017-06-28 4 views
0

次のコードは完璧に動作します。"keydown"は自動的に引数を関数に渡すことを知っていますか?

ESCキーが押された場合function closeModalが発生します。

window.addEventListener("keydown", function(e) { if (e.keyCode == "27") { closeModal(); }}); 

技術的な観点から、私は​​を作成し、その関数にe引数を送信するために知っているか/なぜわからないので、私は知識の重要な部分が欠落している必要があります。​​さんはどのようにしてeを送るのですか?

clickを使用するこのコードの比較では、引数が送信されないか、尋ねられていません。私は関数が引数を受け入れるように書かれていないことを知っていますが、私はclickが引数を作成したりとにかく送るとは思わない。そして、もしそれがそれの隣に座っている機能に着くことを知っていたらどうしたのでしょうか?たぶん私はこれについてすべて間違っています。

document.getElementById("portfolio-large").addEventListener("click", closeModal); 
+2

ブラウザは常にイベントリスナーにイベントオブジェクトを送信します。一部のイベントリスナーは実際にそれを使用しますが、他のものは使用しません。 – jcaron

+0

@jcaron魅力的!私は引数 'e'を見るためにコンソールログを使い、20のプロパティのように戻ってきました。私はすべてのイベントでそれをチェックするつもりです。驚くばかり! – DR01D

+1

@ DR01Dうんん男、 'event.target'は多くのことに便利です。楽しい。 – MattJHoughton

答えて

1

イベントは、ブラウザによって作成されます。

したがって、ウィンドウオブジェクトにリスナーを関連付け、そのイベントが発生すると、ブラウザはイベントを作成してそれを関数に渡します。これは、クリックを含むあらゆるイベント駆動型アクションで動作します。

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

2

すべては、基本的には、引数としてイベント自体でイベント時に呼び出されるコールバック関数を取り付けるherehere

に記載されています。

clickリスナーについて間違っています。また、それはevent引数を受け取ります。

関連する問題