2014-02-27 110 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請求需要一段時間。

相關問題