2013-03-22 57 views
0

所以基本上我做的是,當用戶在第一頁我試圖讓,把內容到其他網頁,我需要調用刷新的元素,所以我阿賈克斯結果不要失去CSS,但我不斷收到這部分錯誤。它總是哪個用戶是不是在給我的錯誤頁面錯誤清涼元素包含在看不見的網頁

HTML

<div class="wrapper"> 
     <ul data-role="listview" class="news_list"></ul> </div> 
    </div> 

調用函數

$(document).ready(function(e) { 
     get_latest_news(1 , 'http://www.xxx.com' , 0); 
    }) 

主要功能

function get_latest_news(id , link_ , refresh_){ 


     var w = $('#'+id).find('.wrapper'); 
     w.hide(); 
     w.find('.news_list').html(''); 
     jQuery.support.cors = true; 
     $.ajax({ 
      url : link_ , 
      success:function(data){ 
       var ul ='' ; 
        $.each(data.posts , function (k , v){ 
         ul += '<li><h3><a href="#each_news">' 
         +v.title+'</a></h3>'+ 
         '<p > '+v.date+' </p></li>'; 
        }); 
        w.find('.news_list').append(ul); 
        w.find('.news_list').listview('refresh'); 
        w.show(); 
      } 

     }) 

    } 

我得到

在這一行

w.find('.news_list').listview('refresh'); 

我將其更改爲

w.find('.news_list')listview().listview('refresh'); 

現在我得到

TypeError: parentPage[0] is undefined 
[Break On This Error] 

parentId = parentUrl || parentPage[ 0 ][ $.expando ], 

回答

0

你的主要問題是document ready,它不能被用來初始化jQuery Mobileç頌。這將觸發前jQuery Mobile可以加載頁面到DOM。這就是爲什麼jQuery Mobile都有自己的初始化內容的方式,它被稱爲頁面事件:

比方說你有一個網頁的ID index,你會初始化這樣的:

$(document).on('pagebeforeshow', '#index', function(){  
    //Call your ajax here 
}); 

要了解更多關於jQuery Mobile頁面事件,以及它們是如何工作來看看我的ARTICLE或發現它HERE

你的代碼看起來應該像這樣的情況下,你有一個ID索引的頁面:

$(document).on('pagebeforeshow', '#index', function(){ 
    get_latest_news(1 , 'http://www.xxx.com' , 0); 
}); 

pagebeforeshow是你要在這裏使用,因爲它會觸發之前的網頁是關於要顯示的事件,所以有足夠的時間來觸發AJAX調用並顯示頁面之前填充列表視圖。

可以找到其他頁面事件​​