У меня есть одностраничное мобильное приложение jQuery с четырьмя data-role = 'pages' "; так что, по сути, это один документ HTML с четырьмя "страницами".
Каждая «страница» также имеет нижний колонтитул навигации, который я динамически заполняю через javascript. Я определил переменную под названием «theFooter» и назначил все мои пустые div-элементы нижнего колонтитула (с классами «footer») следующим образом:
$('.footer').html(theFooter);
Теперь, чтобы заставить это работать должным образом, я должен заполнить эти нижние колонтитулы до создания создаваемой страницы, в противном случае jQuery Mobile не будет применять его каркас, чтобы сделать нижний колонтитул похожим на панель навигации мобильного приложения.
Таким образом, я достигаю этого через это:
$( "div[data-role='page']").live('pagebeforecreate', function (evt) {
console.log("BEFORE CREATE run."); //writes to my fireBug console to alert me that the 'page' has been run
$('.footer').html(theFooter);
});
Работает как во сне, в первый раз. Давайте предположим, что страницы «о», «контакт», «миссия» и «календарь» ...
Вы нажимаете "о" ... идеально.
Вы нажимаете "контакт" ... идеально.
Вы можете сделать это для каждой из «страниц», и каждый раз, когда «pagebeforecreate» запускается, а нижний колонтитул выглядит БОЛЬШИМ.
ОДНАКО, если теперь вы снова нажмете, скажем, «о» (или любой из тех, которые вы уже посетили), страница перейдет и содержимое будет на месте, но ФОРМАТИРОВАНИЕ ПЕРЕДВИЖЕНИЯ JQUERY НЕТ. И он не запускает функцию pagebeforecreate снова, что имеет смысл, потому что она уже была создана в первый раз.
Я пытался работать с стрельбами pageinit и pagebeforeshow, но ничего не получил.
Я попробовал методы .trigger () и .page ()… и ничего не получил.
Может кто-нибудь объяснить, как сделать эту карту форматирования JQuery Mobile?