Да Навигация по страницам на основе AJAX поддерживается, когда каждый из ваших элементов <div data-role="page">
находится на разных страницах. При навигации jQuery Mobile найдет только первый элемент <div data-role="page">
на странице, добавит его в текущий DOM, а затем оживит его.
Убедитесь, что вы используете .delegate()
или .live()
для привязки ваших обработчиков событий, поскольку элементы, с которыми вы связываете, не существуют в DOM, пока пользователь не перейдет к ним. Вот пример:
$(document).delegate('[data-role="page"]', 'pageshow', function () {
alert(this.id + ' --> pageshow');
});
Если вы используете функцию pushState, которая обновляет URL, чтобы не включать хэши (например, www.mywebsite.com/index.html#/dir1/page2.html изменяется на www.mywebsite.com/dir1/page2.html ) Я бы порекомендовал записать весь ваш пользовательский JavaScript во внешний файл .js
и включить его на каждой странице. Таким образом, если пользователь обновит браузер или перейдет по ссылке на ваш сайт, он получит весь код, который вы хотите получить от него.
Документация: