2014-02-27 82 views
1

我有以下页面,ajax请求后重新初始化Jquery Mobile的所有元素?

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <link rel="stylesheet" href="<%= ResolveUrl("~/css/jquery.mobile-1.3.0.min.css") %>" /> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <div data-role="page" id="newsDeatils"> 
      <div data-role="content"> 
       <h3 id="newsTitle"></h3> 
       <p id="newsCategory"></p> 
       <div id="newsDescription"></div> 
      </div> 
     </div> 
    </div> 
    </form> 
    <script src="<%= ResolveUrl("~/js/jquery.min.js") %>"></script> 
    <script> 
     $(document).bind("mobileinit", function() { 
      $.mobile.autoInitializePage = false; 
     }); 
    </script> 
    <script src="<%= ResolveUrl("~/js/jquery.mobile-1.3.0.min.js") %>"></script>  
    <script src="<%= ResolveUrl("~/js/knockout-2.2.0.js") %>"></script> 
    <script src="<%= ResolveUrl("~/js/NewsDetails.js")%>"></script> 
    <script> 
     $.mobile.initializePage(); 
    </script> 
</body> 
</html> 

NewsDetails.js会发送一个Ajax请求,然后用表格填写newsDescription div。但没有任何工作?

回答

0

我已经把$.mobile.initializePage();里面的成功回调每件事情都起作用了。

1

而不是延迟初始化整个页面,最好让它全部被初始化,然后初始化新的代码。在jQm v1.3.2及更早版本中,您可以通过将以下代码添加到成功回调中来完成此操作。

$('#newsDescription table').trigger('create'); 

这将使整个页面来初始化和防止无样式页面的闪光给用户,如果他们有一个缓慢的网络连接,可能导致您的Ajax请求需要一段时间。

相关问题