0
搜索了近2天,無法找到合適的答案。JqueryMobile加載器/微調器,同時加載另一頁
我正在開發一個Jquery Mobile頁面。目前我有2個JQuery Mobile頁面。當頁面啓動時,它會顯示一個按鈕。點擊按鈕將向服務器發送SOAP請求以獲得響應。收到響應後,將顯示第二頁。
SOAP請求可能需要至少3到5秒。在那段時間裏,我想在頁面中間顯示一個加載器/微調器,直到我得到服務器的響應。怎麼做?以下是我使用的代碼。含
<form name="frm_login" action="" method="post">
<div id='pg_login' data-role="page">
<div data-role="content">
<input type="submit" name="btn_login_submit" id="btn_login_submit" value="Login" />
</div>
</div>
<div id='pg_menu' data-role="page">
<div data-role="header" data-position="fixed">
<h1>Welcome</h1>
</div>
</div>
</form>
Javascript代碼2頁如下
$(document).ready(function() {
$('form').submit(function(e){
e.preventDefault();
var xmlRequest = getXmlRequest();
loadingStart();
$.soap({
url: 'full wsdl url',
method: 'getUserName',
data: xmlRequest,
success: function(xmlResponse) {
loadingEnd();
$.mobile.changePage('#pg_menu');
},
error: function(xmlResponse) {
}
});
return false;
});
});
function loadingStart(){
$.mobile.loading('show', {
text: "loading",
textVisible: true
});
}
function loadingEnd(){
$.mobile.loading("hide");
}
我還留着5秒的睡眠時間爲測試目的而WSDL功能
HTML文件。
加載程序不顯示。請讓我知道這裏出了什麼問題。
問候 梅萊
1)'form'應該被封裝在'data-role = page'中,而不是相反。 2)不要在jqm中使用'.ready()'。 http://jsfiddle.net/Palestinian/4a6SH/ – Omar
爲什麼我們不應該使用。就緒()內JQM? – Malaiselvan
重要提示:使用的$(document).bind( 'pageinit'),而不是$(文件)。就緒() 你的jQuery學習的第一件事就是調用代碼$(文件)。就緒()函數內部使一旦DOM被加載,所有東西都會執行。然而,在jQuery Mobile的,阿賈克斯被用作導航到每一頁的內容裝入DOM和DOM準備處理程序只執行了第一頁。要在加載並創建新頁面時執行代碼,可以綁定到pageinit事件。該事件在本頁面的底部詳細說明。 – Omar