0

我试图让一个列表视图填充“pageshow”上的数据。使用 Javascript 和 JQM 1.3.2。我的 html 部分是我的页面

<div data-role="page" data-theme="b" id="listPlaces">
    <div data-role="header" data-position="fixed">
                <h4>Header</h4>
    </div>
    <div data-role="content">
  <div class="content-primary" id="content-primary"></div>
    </div>
  <div data-role="footer"><h4>Footer</h4></div>

我正在调用外部 javascript:

 $(document).off("pageinit", "#listPlaces");
 $(document).on("pageinit", "#listPlaces", (function parseData(){
        var output = '', val;
        var output = '<ul data-role="listview" data-autodividers="true" id="listOfPlaces">';
        for (val in localStorage) {
            if (localStorage.hasOwnProperty(val)) {
                place = JSON.parse(localStorage[val]);
                output += '<li><div data-role="collapsible">' + '<a href="placeDetail.html?place='  + place["name"] + '">'  + place["name"] + '</a><br /><span style="font-size:10px;padding-left:20px">' + place["address"] + '</span><div></li>'
            }
        }
        output += '</ul>';
        return output;
    }));
 $(document).on("pageshow", "#listPlaces", (function() {
             alert('in pageshow');
     var div = $('#content-primary');
     div.output(parseData());
     div.find('ul').listview();
 }));

我看到“in pageshow”警报,但未定义 parseData()。我不知道如何解决这个问题。当我将输出发送到 console.log 时,它看起来很好,我可以将它复制到另一个文件中并让它正确显示。

任何帮助表示赞赏。我是在这个网站上发帖的新手,所以我试着遵守规则。如果我做错了什么,请提前道歉。我也搜索了该站点并找到了这个答案如何在 jquery mobile 中将样式更新为列表视图?这有帮助,但我仍然坚持这个 pageshow 功能。谢谢

4

1 回答 1

0

分区。输出(解析数据());

什么是.output()??--> 也许你正在寻找.html()

这应该这样做:

 $(document).off("pageinit").on("pageinit", "#listPlaces", parseData);

 $(document).on("pageshow", "#listPlaces", (function() {
     alert('in pageshow');
     var div = $('#content-primary');
     div.html(parseData());
     div.find('ul').listview();
 }));

function parseData(){
    var output = '', val;
    var output = '<ul data-role="listview" data-autodividers="true" id="listOfPlaces">';
    for (val in localStorage) {
        if (localStorage.hasOwnProperty(val)) {
            place = JSON.parse(localStorage[val]);
            output += '<li><div data-role="collapsible">' + '<a href="placeDetail.html?place='  + place["name"] + '">'  + place["name"] + '</a><br /><span style="font-size:10px;padding-left:20px">' + place["address"] + '</span><div></li>'
        }
    }
    output += '</ul>';
    return output;
}
于 2013-10-24T06:43:33.427 回答