0

私がチェックしたすべての場所から読んでいるものから、これはイベントハンドラーの属性にアクセスする方法です:

canvas.addEventListener('onmousemove', traceMouse(e));  //Handler gets passed in as 'e'

function traceMouse(e) {   //Then I could just use it like a normal parameter, right?
    mouseX = e.clientX;
    mouseY = e.clientY;
    }

残念ながら、firebug は e が定義されていないと主張しています。どこで間違ったのかまったくわかりません。おそらくまた愚かな間違いを犯したのでしょう。自分の頭をかみ砕く準備ができています。

ヘルプ?

4

1 に答える 1

0

実は addEventListener の第2引数に渡すのは、イベント発火時に呼び出したい関数名です。ここで、関数を呼び出して e (定義されていません) を渡します。したがって、コードは

canvas.addEventListener('mousemove',traceMouse);

そして、イベントオブジェクトはブラウザから渡されるので、clientX & Y を取得することができます。

いずれにせよ、クロージャーを使用できる関数に引数を渡す必要があります。ここに例があります。http://jsfiddle.net/parth1403/fVakB/

于 2012-05-21T07:44:25.463 に答える