尝试将参数传递给addevent,但它无效。
把桌子放在一起:
for (var i=0; i<json.objects[0].tour.length; i++){
var row = Ti.UI.createTableViewRow(
title = json.objects[0].tour[i].name,
leftImage = json.objects[0].tour[i].icon,
hasChild = true,
rowIndex = json.objects[0].tour[i].id,
height = 68,
rowId = i
);
var tourdetdatattlwrvw = Ti.UI.createView({top:10, left: 10, width:'100%',height:28});
var tourdetdatattllbl = Ti.UI.createLabel({
text:json.objects[0].tour[i].name,
height:23,
width:'100%',
font:{fontSize:20,fontWeight:'bold'},
color:'#000',
textAlign:'left'
});
tourdetdatattlwrvw.add(tourdetdatattllbl)
var tourdetdatadescwrvw = Ti.UI.createView({left:10, width:'100%', top:40, height:60});
var tourdetdatadesclbl = Ti.UI.createLabel({
text:json.objects[0].tour[i].description,
font:{fontSize:12,fontWeight:'normal'},
color:'#000',
width:'100%',
height:60
});
tourdetdatadescwrvw.add(tourdetdatadesclbl)
row.add(tourdetdatattlwrvw);
row.add(tourdetdatadescwrvw);
tableData.push(row);
}
var table = Ti.UI.createTableView({
data:tableData
});
然后是事件监听器:
table.addEventListener('click', function(e) {
activeTour = e.source.rowId;
alert(activeTour)
alert(rowIndex)
})
当然,它不起作用。
我做错了什么?
答案 0 :(得分:1)
当您在行对象中设置任何自定义变量时,您可以通过下面的代码将其取回,所以请尝试并告诉我您是否发现任何问题。
table.addEventListener('click', function(e) {
activeTour = e.row.rowId;
alert(e.row.rowId);
})
答案 1 :(得分:1)
我认为代码的以下部分存在错误
var row = Ti.UI.createTableViewRow(
title = json.objects[0].tour[i].name,
leftImage = json.objects[0].tour[i].icon,
hasChild = true,
rowIndex = json.objects[0].tour[i].id,
height = 68,
rowId = i
);
尝试将其更改为
var row = Ti.UI.createTableViewRow({
title : json.objects[0].tour[i].name,
leftImage : json.objects[0].tour[i].icon,
hasChild : true,
rowIndex : json.objects[0].tour[i].id,
height : 68,
rowId : i
});
您可以将值设为
table.addEventListener('click', function(e) {
activeTour = e.rowData.rowId;
alert(activeTour);
});
希望它对你有所帮助。如果您有任何问题,请告诉我
答案 2 :(得分:0)
你为什么试试这个
table.addEventListener('click', function(e) {
activeTour = e.index;
alert(e.index)
})
由于