javascript関数がDOMイベントによって呼び出されると、関数内でDOMイベントを表すイベント変数にアクセスできますか?舞台裏ではどのように機能しますか?関数はイベント引数を取得せず、argusmentsオブジェクトを使用しないためです。
質問する
87 次
1 に答える
0
DOMイベントの簡単な要約:
Eventlistenerをバインドする正しい方法は次のとおりです。
var elem = document.querySelector("div");
elem.addEventListener("event-type",function(e){ /*e is the event object*/ });
addEventListener()
event-type
DOM-Elementでイベントをリッスンしますelem
。
addEventListener()
常にイベントオブジェクトを最初のパラメータとして関数に渡します。e
このパラメーターには、関数ヘッド(一般に名前が付けられている)で定義するか、を介してアクセスできますarguments[0]
。this
イベントが発生したDom-Elementを指します。
IE(バージョン8まで)には、イベントハンドラーをバインドするための独自の方法があります。
elem.attachEvent("event-type",function(){})
これにはいくつかの欠点this
があります。DOM要素ではなくグローバルオブジェクトを参照し、event
オブジェクトがパラメーターとして渡されないことです。
ただし、Microsoftwindow.event
は、ドキュメントで発生した最後のイベントを常に保持するものを導入しました。したがって、次のように関数で使用できます。
function(){
var e = window.event;
}
これwindow.event
はいくつかのブラウザで利用できますが、これに依存したり使用したりしないでください(ほとんどのグローバル変数に推奨されます)。
于 2013-02-08T12:52:57.563 に答える