1

Web サービスから動的に取得されるアイテムのリストがあります。次のようになります。

http://i.imgur.com/cXHBk.png

私がしたいのは、クリックされたリスト項目を何らかの形で変数として宣言することです....そして、クリックされた項目の情報を別のページに渡します。これを行う方法がわかりません。ここの誰かが私を正しい方向に向けてくれることを望んでいました。

これまでのところ、これを思いつくことができましたが、変数「someData」は未定義のまま戻ってきます。

$('#dogs ul').click(function(e) {
var someData = jQuery(this).data('<li>');
alert(someData);
});

}

すべての情報をリストビューにまとめるコードは次のとおりです。

$(data).find('NewDataSet').each(function(i) {
    var listView = $('<ul data-role="listview" data-inset="true" data-split-theme="b">').data('role', 'listview');

    $(data).find('Table').each(function() {
        var title = $(this).find('ShortDesc').text();
        var description = $(this).find('LongDesc').text();
        var thumbnail = $(this).find('ThumbURL').text();
        var listItem = $('<li/>');
        $('<a href="#"><img id="bla" src="' + thumbnail + '"><div id="desc"><h4>' + title + '</h4> <p> <br/>' + description + '</p></div>').appendTo(listItem);
        $(listItem).appendTo(listView);
    });

    $(listView).appendTo('#dogs');
});


$('#dogs ul').listview();

誰かが私を正しい方向に向けることができれば、または私が間違っていることを教えていただければ幸いです。

ありがとう!

4

1 に答える 1

0

私はあなたがかなり近いと思います。jQuery.data() を使用して作成された各li要素にデータを格納できます。

$(data).find('Table').each(function() {

    //...

    var tableData = $(this); // 'this', in your example, refers to the Table data
    var listItem = $('<li/>').data('TableData', tableData);
});

元に戻して別のページに渡すには、クリックを処理してデータを別のページに投稿します。簡単な場合は、クエリ文字列にデータを追加することもできます。

$('#dogs ul li').click(function(e) {
    e.stopPropagation();
    var tableData = $(this).data('TableData');
    $.mobile.changePage("anotherpage.php", {
        type: "post",
        data: $(tableData).serialize() // I'm not sure of your data format, so serialize() this may not work
    });
});
于 2012-08-15T20:32:05.163 に答える