【发布时间】:2014-09-25 04:28:33
【问题描述】:
我正在使用 JQM 1.4.3。我有一个 AJAX 设置 localStorage 键的值,然后更改页面:
login.js
$.ajax({
url: url,
type: 'GET',
dataType: 'json',
data: 'method=login&username=' + encodeURIComponent(username) + '&token=' + encodeURIComponent(token),
//async: false,
//crossDomain: true,
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(JSON.stringify(XMLHttpRequest));
console.log(JSON.stringify(textStatus));
console.log(JSON.stringify(errorThrown));
},
success: function( user ){
console.log(JSON.stringify(user));
if(user) {
$('#welcome').remove();
storage.setItem("uid", user);
storage.setItem("username", username);
$('#welcome').trigger("create");
$.mobile.changePage( "#page_dashboard", { transition: "slideup" });
console.log(storage.username);
}
}
});
index.html
<div data-role="content">
<h2 align="center" id="welcome">Hello</h2>
</div>
index.js(附加到 index.html)
$( document ).delegate("#page_dashboard", "pageinit", function() {
$('#welcome').trigger("create");
$('#welcome').text("Hello " + storage.username);
});
我正在尝试刷新 #page_dashboard 上的文本值以反映新用户。我正在使用 page_init 和 page_beforecreate 并且既不刷新文本。如果我手动刷新页面,文本会更改。如何刷新元素以反映新的 localStorage 值?
【问题讨论】:
-
如果您使用的是JQM 1.3或更低版本,您需要
$.mobile.activePage.trigger("pagecreate")。 -
然后
$("#headerID").toolbar()。 -
这不是 jqm 标头...它只是 html 标头标记中页面包装器上的文本。
-
请使用 html 标记和任何相关数据更新您的问题。
-
如果只是文本,那么
$("#welcome").text("new text")不是.remove()。
标签: ajax jquery-mobile refresh