我正在将以下项目推送到数组:
data.push({
title: items.item(i).getElementsByTagName("title").item(0).text,
leftImage: "News Story.png",
dataToPass: items.item(i).getElementsByTagName("content:encoded").item(0).text,
className: "TableRow",
hasChild: true,
js:"external.js"
});
我将此数组设置为表的数据源。
table.data = data;
这很好用,表格显示为欲望。但是,当我点击一行表时,我会有一个事件监听器。在那里我有一个条件测试它是否有一个js属性,如果它有一个dataToPass属性,并且这返回false,有人可以解释这个吗?
table.addEventListener("click", function (e){
if(e.source.title){
alert("has title");
}
if (e.source.dataToPass){
alert ("got data");
}
if (e.source.js){
alert("has js");
}
我收到了有标题的警报但没有收到数据。为什么呢?
答案 0 :(得分:1)
当您从JSON对象创建表行时,您必须访问rowData
对象中的数据,请尝试以下操作:
table.addEventListener("click", function (e){
if(e.source.title){
alert("has title");
}
if (e.rowData.dataToPass){
alert ("got data");
}
});
中更详细地记录了这一点