Javascript 已设置的表属性显示为未定义

Javascript 已设置的表属性显示为未定义,javascript,properties,titanium,Javascript,Properties,Titanium,我正在将以下项目推送到阵列: 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,

我正在将以下项目推送到阵列:

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;
这工作正常,表格显示为desire。然而,我有一个事件监听器,在单击表的一行时打开。我有一个条件测试,如果它有一个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");
        }

我收到了关于has title的警报,但没有,got data。为什么?

从JSON对象创建表行时,必须从
rowData
对象访问数据,请尝试以下操作:

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

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

这在

中有详细的说明。您确定表数据直接映射到DOM元素上的属性吗?
e.source
甚至是正确的DOM元素吗?这里没有足够的信息供任何人帮助。@jbabey如果我正在打印e.source.title,并且它正在打印所需的输出,那么“e”部分就不是问题所在。我应该包括整个js吗?非常感谢!我仍然不明白为什么它对某些元素有效,但不是所有元素都有效,但衷心感谢您修复了它,有些人会称之为bug,如果您在一张桌子上添加行,那么您必须通过e.source或e.row访问数据,但是当您像您那样使用JSON对象创建数据时,必须使用e.rowData.Hi Josiah我正在将项推送到数据数组,然后将这些项添加到rowData数组中,以便为表创建自定义行。这很好用。我现在需要知道当用户单击特定行时如何访问这些。我以前使用您的解决方案(即rowData.title等)访问这些元素时,我有一个基本表,但现在它是一个自定义表,这不起作用。e、 row和e.source不工作:/如果您有空闲时间,请参阅上面的代码!!!你能把这个问题换成一个新问题吗?如果我在这里回答这两个问题,这可能会让未来的读者感到困惑。