Вы не можете ссылаться на многостраничный документ через AJAX. Только первый элемент data-role="page"
будет импортирован в DOM, а все остальное будет игнорироваться (даже содержимое в <head>
).
Если вы ссылаетесь на многостраничный шаблон без AJAX, тогда будет загружена вся страница и будут доступны все элементы data-role="page"
. Для этого вы можете установить атрибуты для определенных ссылок, например:
<a hef="#" data-ajax="false">my link</a>
Или вот так:
<a hef="#" rel="external">my link</a>
Вы также можете установить эту опцию глобально следующим образом:
<script src="jquery.js"></script>
<script>
$(document).bind('mobileinit', function () {
$.mobile.ajaxEnabled = false;
});
</script>
<script src="jquery-mobile.js"></script>
UPDATE
Я видел плагин, который позволяет вам делать то, что вы хотите, но я не смог его найти. Он просто извлекает все элементы data-role="page"
из многостраничного документа, а не только из первого (однако мне кажется, что это создаст некоторые странные проблемы с глубокими ссылками).
UPDATE
О, и это хорошо:)
В версии 1.0 jQuery Mobile позволяет предварительно выбирать страницы, добавляя атрибут data-prefetch="true"
к ссылкам. Если вы разбили свой многостраничный шаблон на отдельные страницы, вы можете предварительно извлечь их, чтобы они были добавлены в DOM и появлялись «мгновенно» при нажатии на ссылку на них (а не в ожидании разрешения запроса AJAX) .
Документы для предварительной выборки: http://jquerymobile.com/demos/1.0/docs/pages/page-cache.html