每次插入,删除或更新数据时,我都需要重新启动应用程序。 数据正在插入和删除...但不知道为什么我需要每次都重新启动我的应用程序以获得效果。
我想使用此应用的文件结构。
<script type="text/javascript" charset="utf-8" src="js/cordova-2.1.0.js"></script>
<script type="text/javascript" charset="utf-8" src="js/lawnchair.js"></script>
<script type="text/javascript" charset="utf-8" src="js/dom.js"></script>
<script>
$(function(e) {
var details = Lawnchair({name:'details',adapter:'dom'},function(e){
//this.nuke();
});
details.all(function(data){
for(var i = 0; i<data.length;i++)
{
//alert(data.length);
var id = i + 1;
//alert(id);
document.getElementById("id").value = id;
var listdiv = document.createElement('li');
listdiv.setAttribute('id','listdiv' + i);
listdiv.innerHTML = "ID : " + data[i].value.id + " | " + "Name : " + data[i].value.name + " | " + "Desc : " + data[i].value.desc;
$('#show_list').append(listdiv);
}
});
$('#save').click(function(e){
//alert($.now());
var obj1 = {id:$('#id').val(),name:$('#name').val(),desc:$('#desc').val()};
//alert("listdiv" + obj1.id);
details.save({key:"listdiv" + obj1.id,value:obj1});
alert("Data Saved Successfully");
//location.reload();
});
$('#del').click(function(e){
if(document.getElementById("name").value != "")
{
var id = document.getElementById("id").value;
details.remove("listdiv" + id,function(obj1){
$("input:text").val("");
document.getElementById("show_list").innerHTML = "";
alert("Data Removed Successfully");
});
}
else
{
alert("Please Select Data");
return false;
}
});
$('li').live('click',function(e){
//alert(this.id);
details.get(this.id,function(obj){
document.getElementById("id").value = obj.value.id;
document.getElementById("name").value = obj.value.name;
document.getElementById("desc").value = obj.value.desc;
});
});
});
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
因为附加了新内容代码应如下所示:
details.all(function(data){
for(var i = 0; i<data.length;i++)
{
//alert(data.length);
var id = i + 1;
//alert(id);
document.getElementById("id").value = id;
var listdiv = document.createElement('li');
listdiv.setAttribute('id','listdiv' + i);
listdiv.innerHTML = "ID : " + data[i].value.id + " | " + "Name : " + data[i].value.name + " | " + "Desc : " + data[i].value.desc;
$('#show_list').append(listdiv);+
}
$('#show_list').listview().listview('refresh');
});
此行已添加( #show_list
应为listviews id):
$('#show_list').listview().listview('refresh');
如果您想了解更多相关信息(如何在jquery Mobile中增强动态添加的内容),请查看我的其他 ARTICLE 。或者在我的其他答案中可以找到 HERE 。仔细阅读,因为有很多方法可以实现。
编辑:
以下是您的问题的解决方法:http://jsfiddle.net/Gajotres/3cuPP/
单击“保存”按钮时,还需要附加新数据。在您的情况下,我使用了所有函数来获取所有数据,然后将相同的数据附加到listview并刷新。