1

jquery モバイル リストビューの更新に問題があります。

このコードは正常に動作します:

$(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();

});

ただし、ユーザーのお気に入りにあるリスト ビュー アイテムにアイコンを動的に追加する必要があります。ローカル データベースへのリクエストによって配列を返す関数を使用します。

$(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();

});

この 2 番目のケースでListview()は、適用されません。この 2 番目のオプションがなぜ壊れてしまうほど違うのか理解できませんListview()...

4

1 に答える 1

0

解決策は異なりますが同様の投稿が見つかりました。2 番目のオプションでは、次へのバインディングを削除するだけpagebeforshowです。

   // Listview refresh
      try {
          $("#listview").listview('refresh');
      } catch (e) {
          $("#listview").listview();
      }

ただし、最初のオプションでバインディングが必要な理由をまだ理解していませんでしたpagebeforeshowが、2番目のオプションではコードが壊れています...

于 2013-03-17T08:53:23.593 に答える