0

Titanium Appcelerator を使用して、要素を動的に作成し、ループを使用してそれらにイベント リスナーを追加しようとしています。これが私の現在のコードです:

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
    }
}

これを実行すると、次のエラーが表示されます。

Can't find variable: testLabels. 

見つからない変数が「testLabels1」ではないことは興味深いことです。これは、ループが起動していないことを意味します...何かアイデアはありますか?

ありがとう!

ラベル宣言の前に「var」を置くと、Titanium はそれを好まない。

4

1 に答える 1

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]));

}
于 2011-11-15T09:50:46.180 に答える