有沒有辦法改變jQuery Mobile中的頁面,但仍然有$(document).ready函數啓動?我調用$ .mobile.changePage時似乎遇到一些問題,因爲我的頁面並不總是完全加載....jQuery Mobile ChangePage替代方案
或者找不到changePage的替代方法,是否有刷新頁面的方法通過changePage加載到DOM?
有沒有辦法改變jQuery Mobile中的頁面,但仍然有$(document).ready函數啓動?我調用$ .mobile.changePage時似乎遇到一些問題,因爲我的頁面並不總是完全加載....jQuery Mobile ChangePage替代方案
或者找不到changePage的替代方法,是否有刷新頁面的方法通過changePage加載到DOM?
這個答案是錯的,無用的,所以這裏的一個實際上將幫助人們... - 碧玉
文檔:http://jquerymobile.com/demos/1.1.1/docs/api/methods.html
具體來說,你正在尋找reloadPage選項:
reloadPage(布爾型,默認值:false)強制重新加載頁面,即使它已經在頁面容器的DOM中。僅當 changePage()的'to'參數是一個URL時才使用。
所以,像這樣將工作:
$.mobile.changePage('/some/url.html', {
reloadPage : true
});
您也可以綁定到特定的僞頁面pageinit事件,以專門爲那些僞網頁運行代碼:
$(document).delegate('#page-1', 'pageinit', function() {
//run code for #page-1 pseudo-page
}).delegate('#page-2', 'pageinit', function() {
//run code for #page-2 pseudo-page
}).delegate('#page-3', 'pageinit', function() {
//run code for #page-3 pseudo-page
});
然後,我建議將整個站點的所有代碼放在一個.js文件中,並將其包含在每個文檔的任何data-role =「page」或data-role =「dialog」元素的外部或外部。這樣,無論用戶登陸網站或瀏覽網站的方式,您網站的代碼都將始終存在。
在jQuery Mobile中,ajax用於在瀏覽時將每個頁面的內容加載到DOM中,並且DOM就緒處理程序(即,使用$(document).ready()
限制的所有事件)僅對第一頁執行。要在頁面上執行特定事件時,將顯示它您可以嘗試把這個特定的頁面上,
$(document)
.unbind("pageshow.somenamespace")
.bind("pageshow.somenamespace",
function() {
// code here
}
);
可能重複[Jquery Mobile - $ .mobile.changepage不加載外部.JS文件](http://stackoverflow.com/questions/7449402/jquery-mobile-mobile-changepage-not-loading-external-js文件) – Jasper 2012-08-02 20:10:21
這是一個很常見的問題/問題。當您轉移到AJAX導航模型時,您必須重新考慮您的事件綁定,因爲您在整個用戶體驗中使用相同的DOM。我已經回答了類似的問題,我認爲這個答案可以幫助你:http://stackoverflow.com/questions/7449402/jquery-mobile-mobile-changepage-not-loading-external-js-files/7449731#7449731 – Jasper 2012-08-02 20:10:28