0

我将以下项目推送到数组中:

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");
        }

我收到有标题但没有收到数据的警报。为什么?

4

1 回答 1

1

当你从 JSON 对象创建表行时,你必须从rowData对象访问数据,试试这个:

table.addEventListener("click", function (e){
    if(e.source.title){
            alert("has title");
    }

    if (e.rowData.dataToPass){
            alert ("got data");
    }
});

这在API中有更详尽的记录。

于 2013-07-12T01:41:46.240 回答