JQuery mobile добавляет "загрузочный заголовок" на страницу
Кажется, что jQuery mobile добавляет загружаемое сообщение на стартовой странице. Я действительно не знаю, что происходит, но рассмотрим следующий простой фрагмент:
<!DOCTYPE html>
<html>
<head>
<title>sadFace</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
<h1>;__;</h1>
</body>
</html>
Мне даже нужно прокрутить вниз, чтобы увидеть сообщение загрузки. Поэтому я подумал, что это может произойти, потому что я не следую типичной анатомии мобильной страницы jQuery, но:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>;_;</h1>
</div><!-- /header -->
<div data-role="content">
<p>Same shit, different page.</p>
</div><!-- /content -->
<div data-role="footer">
<h4><a href="#" onclick="location.href='http://www.google.com/pacman/'; return false;">need cookies :C</a></h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
то же самое. Я полностью ошеломлен этим поведением. Я также тестировал jQuery1.0rc2 с тем же результатом, хотя я начал свой проект с прошлой недели, и он выглядит отлично. Что, черт возьми, происходит <. <
Подглядывая в jQuery Mobile 'js Я думаю, что это сообщение initializePage: function()
отвечает за сообщение. Я мог бы прокомментировать
//cue page loading message
$.mobile.showPageLoadingMsg();
или установите autoInitializePage: false
, но я предпочитаю решение, которое не связано с измененным файлом jQuery (если только это не ошибка).
Ответы
Ответ 1
Вы тоже должны добавить CSS, тогда все будет хорошо:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
Подробнее:
Он всегда помещает следующий HTML в нижней части вашего тела:
<div class='ui-loader ui-body-a ui-corner-all'><span class='ui-icon ui-icon-loading spin'></span><h1></h1></div>
Это соответствующий CSS (возможно, вы можете играть с ним сами, если хотите)
.ui-loading .ui-loader { display: block; }
.ui-loader { display: none; position: absolute; opacity: .85; z-index: 100; left: 50%; width: 200px; margin-left: -130px; margin-top: -35px; padding: 10px 30px; }
Функция showPageLoadingMsg
добавляет CSS-класс '.ui load' в тег HTML, а затем становится видимым
Ответ 2
Вы можете остановить autoInitializePage, используя ниже, прежде чем загружать jquery-mobile library
jQuery(document).on("mobileinit", function() {
jQuery.mobile.autoInitializePage = false;
});
Дополнительная информация здесь: http://api.jquerymobile.com/global-config/
Ответ 3
Добавьте это в начало своего JS файла
$.mobile.autoInitializePage = false;