2

我正在用javascript开发一个钛手机应用程序。动态菜单将每个新对象(id,text,...., page) 插入到 for (var x in tab) 的循环中。

有了这些项目,就形成了具体的看法。

变种物品 = []; 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,我只得到最后一个引用。其余的未定义。

请问我该怎么办?

4

1 回答 1

3

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

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

然后这样做:

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

           alert(e.source.id);
       })
 })(items[i]);
于 2012-05-11T11:33:12.277 回答