Запуск загрузки документа на jQuery Mobile с предварительно выбранной страницей

#jquery #jquery-mobile

#jquery #jquery-mobile

Вопрос:

Когда я загружаю начальную страницу, $(document).ready() функция работает просто отлично.

Однако, когда я предварительно выбираю ссылку на страницу, которую хочу загрузить из соображений производительности пользовательского интерфейса, на этой странице не запускается метод document ready.

Кто-нибудь еще сталкивался с этим? Есть предложения?

Моя следующая мысль — просто объединить две страницы в одну, но я бы предпочел хранить их отдельно.

Комментарии:

1. как выполняется предварительная выборка?

2. В jQuery Mobile есть метод предварительной выборки, который я вызываю. $.mobile.loadPage(url, { showLoadMsg: false });

3. Срабатывает ли событие $ (window).load()?

4. Нет. Если бы я хотел угадать, я бы сказал, что jQuery mobile выполняет вызов ajax для извлечения страницы и ввода ее в DOM, поэтому я также не смог запустить $ (window).load().

5. jQuery mobile анализирует только то, что находится в теле выбранной страницы.

Ответ №1:

Вы не должны использовать $(document).ready() функцию для страниц jquery mobile из-за предварительной выборки.

В документе jQuery Doc теперь выделен этот часто задаваемый вопрос в документации по событиям.

Вы должны настроить свой обработчик событий с помощью pageinit события.

Пример из документа:

 $( '#aboutPage' ).live( 'pageinit',function(event){
  alert( 'This page was just enhanced by jQuery Mobile!' );
});
  

Также будьте осторожны — из-за загрузки AJAX используемые вами скрипты должны загружаться на первой странице, а действия для других страниц должны обрабатываться обработчиками событий.