更新: 申し訳ありませんが、誤ってその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>
うまくいかないので、どなたか助けてください。
前もって感謝します。
よろしく、ジョン。