jQuery-Mobile: шаблон MultiPage загружается, но не работает - PullRequest
1 голос
/ 14 января 2012

У меня есть страница шаблона одной страницы (page1.aspx), которая загружает страницу многостраничного шаблона (page2.aspx)

На странице многостраничного шаблона есть кнопки, которые показывают внутренние страницы в виде диалогов. Когда page1 загружает page2 через стандартное поведение AJAX, кнопки на странице 2 не работают. Принудительное обновление page2 в браузере позволяет работать кнопкам на странице 2.

Если я добавлю data-ajax="false" к своим ссылкам на странице 1, все будет хорошо.

Как мне загрузить многостраничную страницу шаблона через AJAX, чтобы кнопки на ней работали?

1 Ответ

5 голосов
/ 14 января 2012

Вы не можете ссылаться на многостраничный документ через 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...