2012-01-09 107 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