Создайте элементы и добавьте EventListener с Loop в Titanium Appcelerator - PullRequest
0 голосов
/ 15 ноября 2011

Использование 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 "перед этикеткойдекларация.

1 Ответ

4 голосов
/ 15 ноября 2011

попробуйте

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

}
...