Joh*_*ner 7 javascript mobile jquery
更新:抱歉,我不小心将该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>
Run Code Online (Sandbox Code Playgroud)
这是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);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
以下是放在HTML文件中的片段,其中应显示数据(并在用户执行的每次新点击时刷新):
<div data-role="content" id="headlineshome"></div>
<script>
$(document).ready(function() {
onHeadlinesLoad();
});
</script>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它不起作用,所以我请求你帮忙.
提前致谢.
最好的问候,约翰.
使用 jQuery mobile 更新列表后,请考虑触发“ create ”事件,但该事件已过时,因此请使用
.page()
Run Code Online (Sandbox Code Playgroud)
在你的清单上是这样的:
$('ul#headlineslist').page();
Run Code Online (Sandbox Code Playgroud)