Вы можете прослушать событие pageshow
и установить загрузочное сообщение, специфичное для этой страницы.
Пример кода:
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Sample</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script>
$("#page1").live("pageshow",function(){
$.mobile.loadingMessage = "Loading message for page1";
});
$("#page2").live("pageshow",function(){
$.mobile.loadingMessage = "Loading message for page2";
});
$(".showBtn").live("click",function(){
$.mobile.showPageLoadingMsg();
setTimeout(function(){$.mobile.hidePageLoadingMsg()},2000);
});
</script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
</head>
<body>
<div data-role="page" id="page1">
<div data-role="header">
<h1>Page1</h1>
</div><!-- /header -->
<div data-role="content">
<a data-role="button" class="showBtn">Show loading message</a>
<a data-role="button" href="#page2">Go to page 2</a>
</div>
</div><!-- /page -->
<div data-role="page" id="page2">
<div data-role="header">
<h1>Page2</h1>
</div><!-- /header -->
<div data-role="content">
<a data-role="button" class="showBtn">Show loading message</a>
<a data-role="button" href="#page1">Go to page 1</a>
</div>
</div>
</body>
</html>
Демонстрация здесь - http://jsfiddle.net/SugTr/
Редактировать - Альтернативная версия, которая использует один pageshow
прослушиватель для всех страниц и предназначается для каждой страницы с использованием операторов switch
- http://jsfiddle.net/SugTr/1/
Редактировать 2 - Сообщение о загрузке будет отображаться каркасом jqm, только если вы пытаетесь загрузить страницу, которая была создана в виде отдельного html-файла. Если у вас есть все ваши data-role="page"
div в пределах одной страницы, это означает, что jqm framework не будет отображать никаких загрузочных сообщений. Однако вы можете вручную показать его в обработчике pagebeforeshow
, используя $.mobile.showPageLoadingMsg()
, и скрыть в обработчике pageshow
, используя $.mobile.hidePageLoadingMsg()
. Но это не так. внесите какое-либо заметное изменение, поскольку продолжительность времени, в течение которого сообщение остается на экране, будет незначительной.
Теперь перейдем к случаю, когда на самом деле отображается сообщение о загрузке страницы (вы загружаете отдельный html), вы можете получить конкретные сообщения о загрузке, установив $.mobile.loadingMessage
непосредственно перед загрузкой страницы.
Тег привязки может быть примерно таким
<a data-role="button" id="gotopage2" href="#'>Go to page 2</a>
и соответствующий скрипт этой формы
$("gotopage2).live("click",function(){
$.mobile.loadingMessage = "Loading message for page1";
$.mobile.changePage("page2.html");
});
Дайте мне знать, если это поможет.