所以我有一个包含一些其他视图的视图,这些视图都是使用循环添加的。问题是我想为每个视图绑定不同的事件,并且由于某种原因,似乎只有最后一个事件被添加到所有视图中(或者更好的是,它覆盖了以前的事件)。
代码实际上很简单,我只是不明白为什么当我在“card”控制器上调试时我的变量“params”总是字母“S”:
var stores = ["B", "O", "E", "K", "S", "F"];
for(var i = 0 ; i < 5 ; i++ )
{
var view_b = Titanium.UI.createView
({
backgroundColor:'#92b723',
top:0,
height:200,
width:200,
borderRadius: 30
// layout:'horizontal'
});
// Handle event
var params = stores[i];
view_b.addEventListener('click', function(e) {
var controller = Alloy.createController("card", params).getView();
controller.open();
});
$.carouselView.add(view_b);
... (some other stuff)
}
应该发生的是,每当我单击任何视图时,它都会将我带到卡片视图并显示我单击了哪个字母。现在代码的方式是通过单击任何视图得到一个“S”。
提前致谢。