AJAX之后的jQuery Mobile Refresh Element

时间:2014-08-01 21:50:42

标签: ajax jquery-mobile refresh

我正在使用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值?

1 个答案:

答案 0 :(得分:1)

    DOM 准备就绪时,会触发
  • “pageinit”。如果你想做的话 只有一次使用 pageinit

  • “pagebeforeshow”会在您的页面显示之前触发。您 在显示之前需要执行操作时可以使用此事件, 喜欢添加div或HTML结构。 如果每次页面都需要它 访问然后使用pagebeforeshow

    $( document ).delegate("#page_dashboard", "pagebeforeshow", function() {
       $('#welcome').trigger("create");
       $('#welcome').text("Hello " + storage.username);
    });