object - 钛手机-通用JS。启动 fireEvent 时对象值会丢失

标签 object titanium undefined titanium-mobile commonjs

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

针对这些项目,提出了具体的意见。

var 项目 = []; 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]);

}

在 Controller 的另一端,我只获得最后一个 id 引用。

如果 i = 0 到 5,我仅获得最后一个引用。其余部分未定义。

请问我该怎么办?

最佳答案

首先你必须为你的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]);

关于object - 钛手机-通用JS。启动 fireEvent 时对象值会丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10547774/

相关文章:

postgresql - 从 Db 中读取字节作为字符串

javascript - 创建具有 toString 函数的 javascript 对象数组

javascript - 如何只显示2个注释

javascript - 钛合金中的 webviews 或 native 组件

c++ - 错误 C2027 : use of undefined type GUITHREADINFO

javascript - 如何动态访问对象的属性?

javascript - 如何在单击时循环遍历一组背景图像

调用非静态方法的Java静态引用变量

javascript - 更改字符串会使整个脚本无法在 Titanium 中运行

c++ - MS Visual C++ 上的 xercesc 的 DOMNode "undefined"