我試圖阻止Jquery Mobile初始化,直到頁面內容被加載後,但我沒有得到想要的結果。該項目是一個簡單的問答測驗。在我的HTML文件我有3周集裝箱的div [數據角色=頁]:如何在客戶端生成的內容中使用JQueryMobile中的autoInitializePage?
div[data-role=page]#pg_title
div[data-role=page]#q0
div[data-role=page]#result
我的document.ready()解析外部JSON文件來加載內容到這些網頁,複製#Q0到的數測驗中的問題。最終的結果是一樣的東西:
div[data-role=page]#pg_title
div[data-role=page]#q0
div[data-role=page]#q1
div[data-role=page]#q2
div[data-role=page]#q3
div[data-role=page]#q4
div[data-role=page]#result
在我的文件頭,我有:
<script>
$(document).bind("mobileinit", function() {
$.mobile.autoInitializePage = false;
});
</script>
<script src="js/quiz.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
http://jquerymobile.com/demos/1.1.0/docs/api/globalconfig.html說加載jQuery Mobile的之前配置的設置,這是我做了什麼。在quiz.js結束時,我必須調用初始化頁面:
$(document).ready(function(){
// ... all the code to load JSON quiz content is here
$.mobile.initializePage();
});
我的問題是,當我從扉頁第一個問題頁面進行,我看到所有的在同一撕心裂肺的問題時間。渲染HTML看起來像這樣:
<div data-role="page" id="q0" class="pg_type_question ui-page ui-body-c ui-page-active" data-title="Quiz Title" data-url="q0" tabindex="0" style="min-height: 826px; ">...</div>
<div data-role="page" id="q1" class="pg_type_question ui-page ui-body-c ui-page-active" data-title="Quiz Title" data-url="q0" tabindex="0" style="min-height: 826px; ">...</div>
<div data-role="page" id="q2" class="pg_type_question ui-page ui-body-c ui-page-active" data-title="Quiz Title" data-url="q0" tabindex="0" style="min-height: 826px; ">...</div>
<div data-role="page" id="q3" class="pg_type_question ui-page ui-body-c ui-page-active" data-title="Quiz Title" data-url="q0" tabindex="0" style="min-height: 826px; ">...</div>
<div data-role="page" id="q4" class="pg_type_question ui-page ui-body-c ui-page-active" data-title="Quiz Title" data-url="q0" tabindex="0" style="min-height: 826px; ">...</div>
的document.ready(後),但mobile.initializePage被調用之前的HTML呈現爲:
<div data-role="page" id="q1" class="pg_type_question" data-title="Quiz Title">...</div>
<div data-role="page" id="q2" class="pg_type_question" data-title="Quiz Title">...</div>
<div data-role="page" id="q3" class="pg_type_question" data-title="Quiz Title">...</div>
<div data-role="page" id="q4" class="pg_type_question" data-title="Quiz Title">...</div>
<div data-role="page" id="q5" class="pg_type_question" data-title="Quiz Title">...</div>
我不明白爲什麼每一個問題網頁是成爲使用「q0」的數據網址激活。
在此先感謝您的幫助!
你用JSON完成回調擊中了頭部!我需要把$ mobile.initializePage();在我的getContent()函數之後,而不是我擁有它的地方。從以.json文件 $ .getJSON //負載測驗內容( 'JS/quiz.json',函數(數據){ \t的getContent(數據); \t $ .mobile.initializePage(); }); 謝謝尼古拉斯! – emkmail2 2012-07-11 15:32:10
+1我正在尋找一種方法來做到這一點。真的很高興得到這個解決方案。 – BBdev 2013-09-06 11:06:47