2012-01-09 106 views
3

這整個jQuery移動動態數據(從服務器中提取數據)正在逼迫我。爲什麼操縱DOM和刷新頁面很困難?jQuery Mobile - 操縱DOM - 刷新頁面

我有我的網頁:

<div data-role="page" id="intranet-holidays" data-title="HOLIDAYS" data-add-back-btn="true"></div> 

在我的document.ready有以下幾點:

$(document).delegate("#intranet-holidays", "pagebeforecreate", function() { 
    $('body').addClass('ui-loading'); 
    $.mobile.loadingMessage = "Loading Holidays..."; 
    $.mobile.showPageLoadingMsg(); 
    // calls getJSON to retrieve data from the web server 
    loadHolidays(); 
}); 

當我返回的數據從服務器返回的我加可摺疊的DIV到我的網頁(Intranet研製節假日除外)。

在可摺疊的DIV中,我有一些UL。

我知道我的語法是正確的,因爲我可以抓住生成的HTML,將其保存到文件中,然後顯示該文件,並將其全部正確顯示。下面是一個屏幕截圖:

enter image description here

這裏是我的動態加載的頁面看起來像(不是我想要的):

enter image description here

我知道我可以刷新列表視圖與如下:

$('#list').listview('refresh'); 

這對列表很有用。

如何刷新頁面(包含可摺疊的DIV和那些可摺疊的DIV包含UL)?

是的,我希望頁面中的所有數據都是動態的。

+0

與你的$(document).delegate相關http://stackoverflow.com/questions/8761859/jquery-mobile-pagebeforechange-being-called-twice – 2012-01-09 15:57:08

回答

4

在AJAX調用獲取JSON數據的success處理方法,加$('#intranet-holidays').trigger('create');您創建列表後。

+0

謝謝,謝謝,謝謝。我一直在想這個問題2天。那就做到了! – 2012-01-09 16:35:45

+0

當你從DOM中刪除一個元素時,這也應該工作嗎?我無法得到它。 – 2013-02-07 00:22:18

0

嘗試:

$('#page').trigger('create'); 

或閱讀:

http://www.elijahmanor.com/2011/02/dynamically-appending-elements-to.html

+0

我試過了。我應該在哪裏打電話?我在調用loadHolidays()之後在pagebeforecreate中創建了它。它沒有什麼區別。你提供的URL是處理listview的。我已閱讀並重新閱讀該網址。這是一個頁面。 – 2012-01-09 15:57:58

+0

$('#intranet-holidays')。trigger('create'); loadHolidays()不起作用後? – 2012-01-09 16:04:02

+0

不,它不起作用。在我來到這裏進行堆棧轉換之前,我已經嘗試過不止一次。我只是想指出最新版本的jQuery mobile。 – 2012-01-09 16:06:00