2011-11-15 8 views
0

Titanium Appceleratorを使用する要素を動的に作成し、ループを使用して要素にイベントリスナーを追加しようとしています。ここに私の現在のコードは次のとおりです。チュートリアルAppeleratorでLoopを使って要素とaddEventListenerを作成

for(i=0;i<7;i++){ 

testLabels[i] = Titanium.UI.createLabel({ 
    borderRadius: 35, 
    text:'hello', 
    textAlign:'center', 
    width:70, 
    height: 70, 
    top: '13%', 
    left:140, 
    touchEnabled: true 
}); 

    testLabels[i].addEventListener('click',function(e){ 
     //do something 
    } 
} 

私はこれを実行すると、私は次のエラーを取得する:それは見つけることができない変数が「testLabels1」ではないことを私に

Can't find variable: testLabels. 

その面白い、これ私にはループが発射されていないことを意味する...アイデア?

ありがとうございます!

チタンは、ラベル宣言の前に "var"を置いたときに好きではありません。

答えて

4

は、あなたの助けのために、この

var testLabels = []; 
for(var i=0; i<7; i++) { 

    testLabels[i] = Titanium.UI.createLabel({ 
     borderRadius: 35, 
     text:'hello', 
     textAlign:'center', 
     width:70, 
     height: 70, 
     top: '13%', 
     left:140, 
     touchEnabled: true 
    }); 

    (function(label) { 
     label.addEventListener('click',function(e){ 
      //do something 
     } 
    }(testLabels[i])); 

} 
+0

感謝をしてみてください!! testLabelsを配列として定義することが答えでした。私はそれを見ていないとは信じられません。あなたの答えの2番目の部分は、イベントリスナーを追加するために、私のために働いていませんでした。私はそれがこのように動作するようになりました: theLabel = testLabels [i]; win2.add(theLabel); theLabel.addEventListener( 'click'、function(){ \t \t }) – gjunkie

関連する問題