2012-12-08 31 views
0

用户登录后,我将其用户名设置为HTML5 localstorage。我想将用户名设置到下一页的顶部工具栏中,但由于某种原因,它不会在changepage之后更改文本。页面更改但文本未插入。我究竟做错了什么?jQuery Mobile:在更改页面后向ID添加文本

编辑

success: function(data) { 
     if(data.status == "success") { 
       $.mobile.changePage("inventory.html"); 
       var username = localStorage.getItem('username'); 
       $("#top_username").html(username); 
      }; 
     if(data.status == "failed") { 
      alert('Incorrect Login Information'); 
      }; 
     } 

编辑:

+1

为什么不干脆:'$(“#top_username”)。html(username);'因为你的本地getItem已经存储在var'username'中 –

+0

@roXon当我tran时,这是一个错误通过代码推荐 – cantaffordretail

回答

0
$(function(){ // DOM is ready! wow, go for #top_username 

    var username = localStorage.getItem('username'); 
    $("#top_username").html(username); 

}); 
+0

我不认为这是问题。代码不完整,它是AJAX调用的一部分 - 请参阅修订后的代码。 – cantaffordretail

0

它,因为你正试图从以前的页面 添加HTML内容

var username = localStorage.getItem('username'); 
$("#top_username").html(username); 

应在库存。 HTML页面,你应该有一个像这样的功能

$(document).on('pageinit'). 

然后它应该完美工作。希望这有助于。

0

如果您正在更改页面,所有用于新页面的活动必须在新页面事件执行期间完成。

在你的情况,你必须选择:

  1. 比方说,你的新页面的id NEWPAGE我们这个活动来改变它:

    $('#newpage').live('pagebeforeshow',function(e,data){ 
        var username = localStorage.getItem('username'); 
        $("#top_username").html('<h1>' + username + '</h1>'); 
    } 
    
  2. $('#newpage').live('pagebeforeshow',function(e,data){ 
        // Get it from prevPage 
        var username = data.prevPage.find('#username').val(); 
        $("#top_username").html('<h1>' + username + '</h1>'); 
    } 
    
相关问题