2013-10-23 107 views
0

我想要獲得一個listview來填充「pageshow」上的數據。使用Javascript和JQM 1.3.2。 我的HTML部分是我的網頁更新'pageshow'列表視圖的內容

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

我看到 '在pageshow' 警報,但隨後parseData()沒有定義。我不知道如何解決這個問題。當我將輸出發送到console.log時,它看起來很好,我可以將它複製到另一個文件並使其正確顯示。

任何幫助表示讚賞。我新來張貼在這個網站上,所以我試圖遵守規則。如果我做錯了事,請事先道歉。我也搜索了該網站,發現這個答案how to update the styles to a listview in jquery mobile?有幫助,但我仍然停留在這個頁面展示功能上。 感謝

+0

申報輸出以外的網頁事件,'無功輸出=「」;'嗨 – Omar

+0

奧馬爾,謝謝......我嘗試,但它抱怨我parseData ()函數:「Uncaught ReferenceError:parseData is not defined」 – user2909022

+0

然後在頁面事件之外定義parseData()。 – Omar

回答

0

div.output(parseData());

什麼是.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; 
} 
+0

如果我可以給你投票,我會!非常感謝!有趣的是,該列表顯示在Chrome中按字母順序排列,但不在Firefox中......這是我的下一個任務......很高興從這一個上移開! – user2909022

+0

完成...再次感謝! – user2909022