1

「this」を関数に渡すことと、イベント自体への参照を渡すことの違いを理解しようとしています。

私は 2 つの個別の div でテストしており、それぞれにマウスオーバー イベントとマウスアウト イベント用の個別の機能があります。'this' だけを 1 つの関数に渡し、'this' と 'e' の両方を別の関数に渡します。私の例はここにあります: http://jsfiddle.net/jkolden/NQvaL/13/

document.getElementById('output').onmouseover = function(e) {mousein(e, this);};
document.getElementById('myDiv').onmouseover = function() {mouseinAlt(this);};

「this」キーワードは常に、リスナーをアタッチする html 要素を参照するように見えますが、「e」はマウスオーバーされている html 要素の子を参照します。それは正しい声明ですか?これを正しく理解しているかどうか、そして私の例がこれらを適切な方法で使用しているかどうかに興味があります。

4

1 に答える 1

2

thisイベントを添付した要素を参照します。eイベント オブジェクトを参照します。そのイベント オブジェクト内には、イベントがディスパッチされた要素であるイベントtarget(すべてのブラウザで常に同じプロパティではなく、IE では ) への参照があります。srcElement

詳細はこちら: https://developer.mozilla.org/en-US/docs/Web/API/event.target

于 2013-10-10T17:05:50.953 に答える