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

has title のアラートを受け取りましたが、not, got data です。なんで?

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 に答える