0

イベントリスナーから関数へのデータを解析する方法はありますか?

私はこれを持っています:

div.addEventListener('mousedown',run(id),false);

function run(e,id){
   console.log(id);
}

すぐに実行されます。もう1つの問題は、変数を解析したい場合idrun関数eがイベントを受信した場合、他のことをどのように解析するか= / e(指定した変数の前または後の)順序を理解するのは少し混乱しますパースします)

これまでの現在の回避策はid、ウィンドウに割り当てることでしたので、基本的にグローバルです...しかし、イベントを介した解析が可能かどうか疑問に思っていますか?

4

2 に答える 2

0

id1つの方法は、次のように、変数が必要な値にすでにバインドされている新しいリスナー関数を作成することです。

function newListener(id) {
    var listener = function(e) {
        console.log(id);
    }
    return listener;
}
div.addEventListener('mousedown',newListener(id),false);

newListener(id)新しい関数を定義します。この関数では、id変数がその時点で持っていた値がその関数内で使用可能です。次に、javascript環境は、マウスボタンが押されたときにその関数を呼び出します。

于 2013-02-17T07:26:03.947 に答える
0

イベントハンドラーは引数を直接取りません。ハンドラーを渡さずに関数run(id)を呼び出しています。これが、(無名関数を使用して)渡す方法です。

https://developer.mozilla.org/en/docs/DOM/element.addEventListener

div.addEventListener('mousedown',function(e){
  doSomething(id);
},false);

function doSomething(id){
  console.log(id);
}
于 2013-02-17T07:32:14.007 に答える