JavaScriptのイベントハンドラとイベントリスナの違いは何ですか?イベントが発生したときに両方とも関数を実行します。 イベントハンドラを使用するタイミングとイベントリスナを使用するタイミングは実際にはわかりません。JavaScript - イベントハンドラとリスナーの違いは何ですか?
答えて
違いはありません。それは同じことのためのちょうど異なる用語です。
イベントハンドリングの目的で、関数をDOM要素に関連付ける方法はさまざまです。標準がフラックスになったとき(または単に実装者が厄介で困難なとき)、差異は現れたが、最終的には基本的に同じである。あなたは、イベントハンドラの登録の並べ替えに使用するかについて混乱している場合は
、次のことができます。
- Read more about the topic、おそらくブラウザ・バイ・ブラウザ毎に、使用するアプローチを選択してください。
- 人気のJavaScriptフレームワークの1つを選択して、ハンドラ
ハンドラとリスナーを取り付けるためのメカニズムを使用するのと同じである1 - イベントを処理する機能のためだけの同義語。 「ハンドラ」はおそらくより受け入れられた用語であり、確かに私にとってより意味的に正しいものです。用語「リスナー」要素にイベントを追加するために使用されるコードから導出される:
element.addEventListener('click', function() { /* do stuff here*/ }, false);
あなたは、しかし、本当にnitpicky得ることができ、別の意味にダウン2を破ります。あなたが傾けている場合、 "ハンドラー"は、 "リスナー"を追加するときにイベントを処理する関数の言葉であり、したがって、単一の "ハンドラー"を利用するいくつかの "リスナー"を持つことができます。考えてみましょう:
// handler is synonymous with function
function someFunction(e) {
if (typeof e == 'undefined')
alert('called as a function');
else
alert('called as a handler');
}
// use someFunction as a handler for a
// click event on element1 -- add a "listener"
element.addEventListener('click', someFunction, false);
// use an anonymous function as a handler for a
// click event on element1 -- add another "listener"
element.addEventListener('click', function() { alert('anonymoose'); }, false);
// use someFunction as a handler for a
// click event on element2 -- add a "listener"
element2.addEventListener('click', someFunction, false);
// call someFunction right now
someFunction();
は、したがって、上記のコードでは、私が2、「ハンドラ」(someFunctionと匿名関数)と3「リスナー」を持っています。
この場合も、これはすべてのセマンティクスです。すべての実用的な目的で、リスナーとハンドラという用語は同じ意味で使用されています。区別が必要な場合は、リスナーは、ハンドラ(ファンクション)へのコールをトリガーするイベントへのサブスクリプションです。
泥が澄んでいますか?
コメントとの一貫性を保つためには、 "element1.addEventListener(...)"にすることができます –
多かれ少なかれJavaと同じです。 http://stackoverflow.com/a/4725508/3184778今より意味をなさない。 Thx – kouretinho
_匿名_ LOL:P – Arjun
- 1. WebDriverリスナーとTestNGリスナーの違いは何ですか?
- 2. C#イベントのJavaScriptイベントハンドラ/リスナー
- 3. サーブレット・フィルタとサーブレット・コンテキスト・リスナーの違いは何ですか?
- 4. HTMLイベントハンドラとDOMレベル0イベントハンドラの違い
- 5. "javascript :;"との違いは何ですか?と "javascript:"のhref属性ですか?
- 6. javascriptでは、エクスポートとエクスポートのデフォルトの違いは何ですか
- 7. JavaScriptでModule LoaderとModule Bundlerの違いは何ですか?
- 8. &&と||の違いは何ですか? JavaScriptで?
- 9. Javascriptの "Promises"とFunctional Programmingの "Task"の違いは何ですか?
- 10. FirefoxのJavascriptエンジンとChromeのV8の違いは何ですか?
- 11. TCPリスナーとソケットの違い
- 12. JavaScriptの987と(987)の違いは何ですか?
- 13. JavaScriptのジェネレータとクロージャの違いは何ですか?
- 14. javascriptのvar関数と関数の違いは何ですか?
- 15. javascriptのt.onclick = doSomethingとt.onclick = doSomething()の違いは何ですか?
- 16. JavaScriptの観測値と約束の違いは何ですか?
- 17. ウィンドウとトップのjavascriptグローバル変数の違いは何ですか?
- 18. JavascriptのMathとArrayの違いは何ですか?
- 19. javascriptのタイムアウトとタイマーの違いは何ですか?
- 20. Qt:WebkitのQtScriptとJavascriptの違いは何ですか
- 21. javascriptのreponseXMLとloadXMLの違いは何ですか?
- 22. javascriptの++ iとi + 1の違いは何ですか?
- 23. for..inとjavascriptのeach..inの違いは何ですか?
- 24. javascriptのa + 1とa-1 +2の違いは何ですか
- 25. Javascriptの引数とパラメータの違いは何ですか?
- 26. JSP、PHP、HTML5とjavascriptの違いは何ですか?
- 27. JavascriptとECMAスクリプトの違いは何ですか?
- 28. JavaScript - "url.path"と "url.pathname"の違いは何ですか?
- 29. ウィンドウとthis.windowの違いは何ですか、javascript?
- 30. RhinoとSpidermonkey JavaScriptエンジンの違いは何ですか?
答えをありがとう。したがって、これらの2つの間に違いがない場合は、ブラウザサポートのためにイベントハンドラを使用するだけです。 (私は2人のリスナーが必要ですが、ハンドラは1人だけです)。 –
しかし、 "リスナー"と "ハンドラ"の間には違いはありません。したがって、あなたは3つのリスナ、または3つのハンドラ、あるいはそれらの組み合わせがあります。実際にハンドラーをつける方法を混在させるのは、おそらく**まったくの習慣ではありません。 – Pointy
ええ、私はそれらを混ぜ合わせません。私は、2つのリスナー(NSイベントモデルのリスナとMSイベントモデルのリスナ)の代わりに、ハンドラが1つだけ必要だと言っていました。 –