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

我觉得你很接近。您可以将数据存储在每个li元素上,因为它们是使用 jQuery.data() 创建的。

$(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 回答