在我的应用程序中listView('refresh')
不起作用。这是我的代码
我动态创建listView
var str = "<ul data-role='listview' data-inset='true' id='mylist'>";
for(var i = 0; i<data.length; i++ ){
str += "<li>"+data[i].note.text+"</li>";
}
str += "</ul>"
$('#content').append(str);
function addnote(){
var note_text = $('#note_text').val();
var note_lat = $('#lat').val();
var note_lng = $('#lng').val();
$.ajax({
type: "POST",
beforeSend: function (jqXHR) {
jqXHR.setRequestHeader(KEY1, _key1);
jqXHR.setRequestHeader(KEY2, _key2);
},
url:SERVER_URL+"api/addNotes/",
data: {type: 'text',note_text: note_text, note_lat: note_lat , note_lng: note_lng},
success: function(data, textStatus, jqXHR) {
if (data.status == "ok"){
$.mobile.changePage("file:///android_asset/www/index.html?"+_key1+"|"+_key2+"|");
}
else{
alert("Something wrong");
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error=" + errorThrown);
},
complete: function() {
$('#mylist').listview('refresh');
}
});
}
我在那里阅读了许多报告和论坛,说我必须在ajax的完整功能中调用listview('refresh')。但是在我的代码中它不起作用,有人能告诉我这里有什么问题吗?
答案 0 :(得分:2)
刷新适用于向现有增强型列表视图添加元素的情况。如果要动态创建整个列表视图,则需要在父div上触发“创建”。
因此,如果您有<div id="container><ul></ul></div>
,则需要致电$("#container").trigger("create")
。
答案 1 :(得分:0)
尝试使用此功能来完成功能
complete: function() {
$('#mylist').listview();
}
正如其他人提到的那样,刷新方法适用于将列表项添加到JQM已创建的列表视图中。
答案 2 :(得分:0)
您可能希望在添加一些值后查看数据。如果你想这样做listview.refresh在添加一些值后没有帮助你,你必须再次调用你的数据,即你必须再次调用getNote()。
我认为这有帮助。
答案 3 :(得分:0)
首先,您必须了解刷新是如何工作的,它只会在您添加新LI时刷新listview的css,以便新LI具有正确的css,
function createItem(tx,results){
var len = results.rows.length;
console.log("lisitem len "+len);
for(var i = 0;i<len;i++){
var content = results.rows.item(i).content;
var id = results.rows.item(i).id;
var string = '<li><a href="#all_content" data-rel="popup" onclick="getContent('+id+');" class="ui-link-inherit">'+content+' ['+results.rows.item(i).date+']</a></li>';
$("#all_list").append(string);
};
freshList("all_list");
}
freshList( “all_list”);它将刷新列表视图,如果你不这样做,所有的LI将显示如下。
<li><a href="#all_content" data-rel="popup" onclick="getContent(2);" class="ui-link-inherit"> 测试成功 [2013-10-02]</a></li>
LI没有css描述
这就是你的ajax操作不起作用的原因