在Titanium Appcelerator中使用Loop创建元素和addEventListener

时间:2011-11-15 09:04:14

标签: javascript titanium titanium-mobile

使用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不喜欢它。

1 个答案:

答案 0 :(得分: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]));

}