我看过其中一些帖子与此类似,所以如果这是重复的话,我很抱歉。
我在提取一些数据时有这个代码,但我似乎无法弄清楚为什么我的列表没有刷新...任何可能的解决方案?这是我的JS。
/* VARIABLES
-------------------------------------------------------------------- */
var serviceUrl = "http://localhost/app/services/";
var serviceToLoad = "homeList.php";
var home;
var pageId = "#homePage";
var contentId = "#homeList";
/* JQUERY
-------------------------------------------------------------------- */
$(pageId).live('pageshow', function(event){
getHomeList();
});
/* FUNCTION SET
-------------------------------------------------------------------- */
function getHomeList() {
$.getJSON(serviceUrl + serviceToLoad, function(data) {
// Remove all content first
$(contentId +' li').remove();
// Load Data
$.each(data.items, function(index, list){
$(contentId).append('<li><a href="#">' + list.name + '</a></li>\n');
});
});
// Reload View
$(contentId).listview('refresh');
}
这是我的HTML页面
<div id="homePage" data-role="page" >
<div data-role="header" data-position="fixed"><h1>Home</h1></div>
<div data-role="content">
<ul id="homeList" data-role="listview"></ul>
</div>
</div>
非常感谢任何帮助!
答案 0 :(得分:4)
Ajax调用是异步所以,将刷新列表视图置于 jSON调用中!
/* VARIABLES
-------------------------------------------------------------------- */
var serviceUrl = "http://localhost/app/services/";
var serviceToLoad = "homeList.php";
var home;
var pageId = "#homePage";
var contentId = "#homeList";
/* JQUERY
-------------------------------------------------------------------- */
$(pageId).live('pageshow', function(event){
getHomeList();
});
/* FUNCTION SET
-------------------------------------------------------------------- */
function getHomeList() {
$.getJSON(serviceUrl + serviceToLoad, function(data) {
// Remove all content first
$(contentId +' li').remove();
// Load Data
$.each(data.items, function(index, list){
$(contentId).append('<li><a href="#">' + list.name + '</a></li>\n');
});
// Reload View
$(contentId).listview('refresh')
});
}
答案 1 :(得分:1)
将行添加到列表后,执行
var contentDiv=$(".ui-page-active div[data-role*='content'] ul");
contentDiv.listview("refresh");
答案 2 :(得分:0)
试试这个$(contentId).listview('refresh',true); 。并确保在ul元素上调用.listview