2012-02-12 2 views
1

私はボタンの配列を持っており、それぞれにeventListenerを追加したいと思います。Titanium Javascript:動的イベントリスナーを作成するにはどうすればよいですか?

eventListenerでは、現在押されているボタンの幅の値を取得します。どうやってやるの?イベントリスナー内

for (i=0; i<5; i++) { 
button[i].addEventListener(click, function(e) { 
alert(/*How should I refer to THAT button*/) 
}) 
} 

答えて

5

、あなたは現在のボタンを参照するためにthisを使用することができます。

for (var i=0; i<5; i++) { 
    button[i].addEventListener('click', function(e) { 
     alert(this); // <-- This inside the event listener = current button 
    }); 
} 

もう一つの方法は、閉鎖ループの体をラップし、ローカル変数を作成することです。

for (var i=0; i<5; i++) { 
    (function(button) { // <--- Local variable 
     button.addEventListener('click', function(e) { 
      alert(button); 
     }); 
    })(button[i]);  // <-- Pass button 
} 

ループごとに新しい関数を作成する代わりに、ループの外に名前付き関数を作成することもできます。

function createButtonEvent(button) { 
    button.addEventListener('click', function(e) { 
     alert(button); 
    }); 
} 
for (var i=0; i<5; i++) { 
    createButtonEvent(button[i]); 
} 
+0

どの方法がJava、C++、Objective C、Perl、Phythonの関数形式に最も似ていますか? –

関連する問題