1

データを挿入、削除、更新するたびにアプリを再起動する必要があります。データは正しく挿入および削除されています...しかし、効果を得るために毎回アプリを再起動する必要がある理由がわかりません。

このアプリのファイル構造を使いたい。

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

1 に答える 1

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_listlistviews idである必要があります):

$('#show_list').listview().listview('refresh');

これ(jquery Mobileで動的に追加されたコンテンツを拡張する方法)について詳しく知りたい場合は、他の記事をご覧ください。またはそれは私の他の答えでここに見つけることができます。彼を達成する方法はたくさんあるので、注意深く読んでください。

編集 :

そして、ここにあなたの問題の修正があります:http: //jsfiddle.net/Gajotres/3cuPP/

保存ボタンをクリックすると、新しいデータも追加する必要があります。あなたの場合、私はすべての関数を使用してすべてのデータを取得しました。次に、同じデータがリストビューに追加され、更新されます。

于 2013-02-12T09:50:17.087 に答える