Titanium mobile - Common JS。启动fireEvent时,对象值会丢失

时间:2012-05-11 08:11:59

标签: object titanium undefined titanium-mobile commonjs

我在javascript中开发了一款适用于钛金属手机的应用。 动态菜单将每个新对象(id,text,....,page)插入到循环中(选项卡中的var x)。

使用这些项目,可以查看具体视图。

var items = [];     var menuIconsItem = require('view / module / menuIconsItem');

for(var i in itemTab) {
    var page = itemTab[i].page;

    items[i] = new menuIconsItem(itemTab[i]);

    menuFirstLine.add(items[i]);
    (function(itemsEvent) {
        itemsEvent.addEventListener('click', function() {

            Ti.App.fireEvent('test' +i, {
                id : i
            });
        })
    })(items[i]);

}

在另一个控制器端,我只得到最后一个id引用。

如果i = 0到5,我只得到最后一个参考。其余的未定义。

我该怎么办?

1 个答案:

答案 0 :(得分:3)

首先你必须为你的menuIconsItem设置id,我在这里以按钮为例。

items[i] = Titanium.UI.createButton({
        id:"button_"+i,
        _index: i
})

然后这样做:

(function(itemsEvent) {
       itemsEvent.addEventListener('click', function(e) {

           alert(e.source.id);
       })
 })(items[i]);