JQuery Mobile, перенаправление по window.location предотвращает событие pagehow

У меня есть мобильное приложение JQuery со множеством страниц, связанных друг с другом. Если я добавлю ссылку на страницу A и установлю ссылку на страницу B, этот скрипт будет работать нормально:

$(document).on('pageshow','#pageB',function(){
    alert('hello!');
});

Но если я помещу кнопку на странице A и напишу этот код для события onclick:

window.location="pageB.html";

Событие pagehow больше не поднимется! Где проблема? Как я могу использовать window.location и все еще быть в состоянии поймать событие pagehow?

1 ответ

Решение

Когда вы используете window.location или же window.location.hrefВы обычно загружаете страницы без Ajax и удаляете все предыдущие страницы в DOM.

Если у вас есть загруженные библиотеки JS в pageA.html, они не будут работать при загрузке pageB.html, потому что они удалены.

Следовательно, вам нужно разместить библиотеки JS в pageB.html<head> чтобы JS код / ​​библиотеки работали.


Обновить

Загрузите страницы / HTML-файлы через Ajax, используя

// jQM 1.3.2 and below
$.mobile.changePage("#page_id" or "URL");

// jQM 1.4
$.mobile.pageContainer.pagecontainer("change", "#page_id" or "URL");
Другие вопросы по тегам