我正在用 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/