需要重启app ..使用带有草坪椅的Phonegap

时间:2013-02-12 09:16:22

标签: cordova jquery-mobile lawnchair

每次插入,删除或更新数据时,我都需要重新启动应用程序。 数据正在插入和删除...但不知道为什么我需要每次都重新启动我的应用程序以获得效果。

我想使用此应用的文件结构。

<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>

1 个答案:

答案 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并刷新。