Подтвердить что ты не робот

Какой правильный способ сделать $(document).ready в jQuery Mobile?

Предположим, что я хочу запустить некоторый код, как только jQuery Mobile завершит отображение пользовательского интерфейса. Событие mobileinit не работает, поскольку оно возникает до того, как это произойдет. Быстрый поиск Google показывает, что просто использование $(document).ready не будет работать с JQM; но я просто попробовал (вызванный после mobileinit), и это сработало для меня: мой код запускался и динамически обновлял элементы и т.д. просто отлично. Поэтому мне интересно, есть ли какая-то причина, по которой я не должен ее использовать (это ненадежно или беспорядочно JQM), или информация о нем не работает просто неточно? Что мне не хватает?

Обновить: здесь для демонстрации.

4b9b3361

Ответ 1

Скорее всего, причина, по которой вы читаете, что $(document).ready не будет работать с jQuery Mobile, заключается в том, что она не срабатывает при каждом просмотре псевдостраницы. Тем не менее, он по-прежнему запускается так, как нужно, когда загружается html-документ.

Если вы хотите запускать код, который запускается каждый раз при просмотре псевдостраницы, вы можете использовать этот код:

$('[data-role="page"]').live('pageshow', function () {
    //run your code here
});

ПРИМЕЧАНИЕ. Существуют и другие крючки, к которым вы можете привязываться (страницы, страница, страница, страница, страница), документацию можно найти здесь: http://jquerymobile.com/demos/1.0b1/docs/api/events.html

---------- ИЗМЕНИТЬ ----------

Я думал об этом, и лучший аналог $(document).ready() не является обязательным для события "pagehow" , он был бы привязан к событию "pagecreate". $(document).ready() срабатывает один раз на загрузку страницы, а "pagecreate" делает то же самое для псевдостраниц, тогда как "pageshow" срабатывает каждый раз, когда отображается страница.

Итак, если пользователь нажал на главный экран, а затем нажал кнопку "Назад", чтобы вернуться к главному экрану, "pagehow" запустит этот второй (и последующий) "показ" на главном экране.

Кроме того, "pagehow" требует, чтобы пользователь перешел на страницу, на которую он привязан.