我在刷新 jquery 移动 ListView 时遇到问题。
这段代码工作正常:
$(document).bind( "pagebeforechange", function( e, data ) {
// Generating a dynamic list
for(var i=0;i<list.length;i++){
var link = '<li><a href="#">'+list[i].name+'</a></li>';
$("#listview").append(link);
}
// Listview refresh
$("#myPage").on('pagebeforeshow', function() {
try {
$("#listview").listview('refresh');
} catch (e) {
$("#listview").listview();
}
});
$.mobile.changePage($(#myPage), {
transition:"slide",
dataUrl:url,
allowSamePageTransition:true,
reverse:reverse
});
e.preventDefault();
});
但是,我需要动态添加一个图标来列出用户收藏夹中的 View 项目。我使用一个函数,该函数通过对本地数据库的请求返回一个数组。
$(document).bind( "pagebeforechange", function( e, data ) {
getFavs(function(favsArray){
// Generating dynamic list with image
for(var i=0;i<list.length;i++){
favImg = "";
if(favsArray.indexOf(list[i].id) !== -1){
favImg = '<img src="images/star-36-black.png" class="ui-li-icon" />';
}
var link = '<li><a href="#">'+favImg+list[i].name+'</a></li>';
$("#listview").append(link);
}
// Listview refresh
$("#myPage").on('pagebeforeshow', function() {
try {
$("#listview").listview('refresh');
} catch (e) {
$("#listview").listview();
}
});
});
$.mobile.changePage($(#myPage), {
transition:"slide",
dataUrl:url,
allowSamePageTransition:true,
reverse:reverse
});
e.preventDefault();
});
在第二种情况下,不应用Listview()
。我不明白为什么第二个选项如此不同以至于它破坏了 Listview()
...
最佳答案
我发现了类似的帖子here ,尽管解决方案不同。对于第二个选项,我只需删除对 pagebeforshow
的绑定(bind):
// Listview refresh
try {
$("#listview").listview('refresh');
} catch (e) {
$("#listview").listview();
}
但是,我还不明白为什么第一个选项需要绑定(bind)到 pagebeforeshow
,而它会破坏第二个选项中的代码...
关于javascript - 使用 jquery mobile 的动态 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15449028/