11

更新: 申し訳ありませんが、誤ってそのdata-dom-cache="true"行を content-div にコピーしてしまいました。アプリが新しいコンテンツではなく dom から読み込まれていることは非常に論理的です。に変更したところfalse、完全に機能するようになりました。

ありがとう。

動的に生成されるリストがあります。誰かがリスト内のエントリをクリックすると、ユーザーはデータが (動的に) 読み込まれる新しいページにリダイレクトされます。読み込まれるデータは、ユーザーがクリックしたリスト エントリによって異なります。

アプリが初めて読み込まれると、すべてがうまく機能します。しかし、ユーザーが別のリスト エントリをクリックすると、最初の実行時と同じデータが表示されます。

.empty()jQuery の関数 (div をクリアして新しいデータを追加する) をいじってみましたが、うまくいきません。

編集:

私の headlines.html ファイルは次のようになります。

<div id="content>
  <div id="headlineslist">
    <ul data-role="listview" data-theme="c" id="headlineslist">
    </ul>
  </div>
</div>
<script>
  $(document).ready(function() {
    HeadlinesLoad();
  });
</script>

Javascript ファイルは次のとおりです。

function HeadlinesLoad() {
  $.ajax({
    type: "POST",
    url: "headlines_getter.php",
    dataType: 'json',
    cache: false,
    success: function(data1) {
      $.each(data1, function(i, currentObj) {
        $('ul#headlineslist').append('<li data-role="list-divider" 
class=​"ui-li ui-li-divider ui-bar-b">​' + currentObj.main + '</li>​').listview('refresh');
        $.each(currentObj.sub, function (j, currentSub) {
          $('ul#headlineslist').append('<li>
<a href="headlinesclicked_temp.html" onclick="headlineID(' + currentSub.sid + ')">' + currentSub.name + '</a></li>').listview('refresh');
        });
      });
    }
  });
}

function headlineID(hID) {
  window.localStorage.setItem("headlineID", hID);
}

function onHeadlinesLoad() {
  var hID = window.localStorage.getItem("headlineID");
  window.localStorage.removeItem("headlineID");
  window.localStorage.clear();
  $.ajax({
    url: "headlinesclicked_getter.php?hID=" + hID,
    success: function(html) {
      if(html){
        $("#headlineshome").empty();
        $("#headlineshome").html(html);
      }
    }
  });
}

そして、データが表示される (そして、ユーザーが新しいクリックを行うたびに更新される) HTML ファイルに配置されるスニペットは次のとおりです。

<div data-role="content" id="headlineshome"></div>
<script>
  $(document).ready(function() {
    onHeadlinesLoad();
  });
</script>

うまくいかないので、どなたか助けてください。

前もって感謝します。

よろしく、ジョン。

4

1 に答える 1

0

jQuery モバイルを使用してリストを更新したら、" create " イベントをトリガーすることを検討してください。

.page() 

次のようにあなたのリストに:

$('ul#headlineslist').page();
于 2012-05-21T21:39:07.113 に答える