Динамическое создание jQuery мобильных страниц с использованием шаблонов jQuery
Я создаю каталог тренировок, используя jquery mobile для шаблонов пользовательского интерфейса и jquery для работы с html. Я смог добавить html к уже созданной странице и получить jquery mobile для изменения разметки благодаря функции .page().
Тем не менее, я хочу иметь возможность создавать новые мобильные страницы jq. Я могу вводить код в divs с ролью data-role = page, называть его .page(), и все это нормально. Но добавление полностью созданной страницы в тело не работает.
EDIT:
Этот вопрос и мой ответ относятся к jQuery mobile alpha 3
Ответы
Ответ 1
Хорошо, я понял. Если вы хотите добавить a в DOM, вы также должны добавить значение для URL-адреса данных. Когда вы создаете статическую html-страницу,
<div data-role="page" id="home">
jQuery mobile автоматически добавляет URL-адрес данных, равный идентификатору, который вы ему даете. Когда вы делаете это самостоятельно, вы должны держать его за руку и передать ему data-url = "home".
Когда вы создаете свою строку html, добавьте ее в $.mobile.pageContainer, поэтому jQuery Mobile знает, где ее найти (добавление ее к телу тоже работает, но, вероятно, лучше не качать лодку).
После этого вызовите .page() на своей странице в DOM, чтобы jQuery mobile делал все магическое волшебство <span>
, чтобы сделать его довольно.
$('#home').page();
Ответ 2
Мотивировка этой темы. Используя jQuery mobile (1.1.0), это работало для меня, .trigger("create")
...
content = '<div data-role="page" id="myID" data-url="myID">'
// ...
$('body').append(content).trigger("create")
$("<a href='#myID' data-rel='dialog'/>").trigger("click")
Ответ 3
когда вы вызываете
$('#home').page();
вы запрашиваете jQuery для улучшения вашего div с помощью специальной таблицы стилей и js-функций. Страница уже присутствует в DOM, но для ее отображения вы должны позвонить $.mobile.changePage("#home",options)
.
для получения дополнительной информации (и конкретных объектов) см. http://jquerymobile.com/test/docs/api/methods.html