2013-06-18 31 views
2

我用jQueryMobile获得了一个.html页面。此页面将数据库请求发送到我的服务器上的.php脚本。然后脚本返回包含html代码和jQuery Mobile主题功能(如data-role =“listview”)的结果。但是JQM主题没有显示在我的前台。只有ul和li的“正常”html风格。你们中的任何人都知道如何在jQuery主题中显示数据库结果?提前致谢!php后的jQuery手机主题回复

回答

3

当动态添加新的jQuery Mobile其内容标记只能通过使用适当的增强功能手动增强。每个小部件都有独特的功能。

这应做到:

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

万一引发此错误:

不能调用之前列表视图的方法来初始化

使用本:

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

还有另一种解决方案。而不是提高单个组件可以增强整个内容DIV,像这样做:

$('contentDivID').trigger('create'); 

,或者它可以在整个页面上进行这样的:

$('pageDivID').trigger('pagecreate'); 

如果你想找到关于这个过程的更多信息(带有工作示例)请看看这个ARTICLE,为了使它透明,它是我的博客文章的链接。

+0

谢谢你的回答!我不确定在哪里放置这段代码。 '' showEvents();函数是我对数据库的ajax调用。 – m1crdy

+1

它应该在ajax成功回调函数中执行。在函数调用之后执行它是不够的,因为ajax调用是异步方法,这意味着代码的其余部分不会等待它完成。这就是为什么当ajax负载达到成功状态时必须执行此操作。如果(stadt ==“”) – Gajotres

+0

' function showEvents(){ if(stadt ==“”) { document.getElementById(“events”)。innerHTML =“”; return; } if(window.XMLHttpRequest) {//代码为IE7 +,Firefox,Chrome,Opera,Safari xmlhttp = new XMLHttpRequest(); } else {//代码为IE6,IE5 xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”); } xmlhttp.onreadystatechange =函数() { 如果(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 的document.getElementById( “事件”)的innerHTML = xmlhttp.responseText。 } } xmlhttp.open(“GET”,“http://dev.tellthedj.de/db/getevents.php?q =“+ stadt,true); xmlhttp.send(); }' – m1crdy