Jquery mobile выберите меню, дублирующееся при загрузке документа - PullRequest
0 голосов
/ 10 января 2019

У меня есть это простое меню выбора, я пытаюсь в проекте

<select data-mini="true">
  <option value="small">One</option>
  <option value="medium">Two</option>
  <option value="large">Three</option>
</select>

Это отлично работает. Но я загружаю свой верхний и нижний колонтитулы при загрузке документа (как показано ниже). Похоже, это создает два вложенных меню выбора, иногда это вложенное меню имеет тенденцию подниматься до 3 или 4 уровней.

        $(document).ready(function () {
            $('#header').load("iphoneHeader.html");
            $('#footer').load("iPadFooter.html");
        });

enter image description here

Почему эта ошибка появляется? Есть ли обходной путь для этого?

Спасибо!

1 Ответ

0 голосов
/ 11 января 2019

Никогда не используйте готовый документ с помощью jQuery Mobile.

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

Прежде всего, jQuery Mobile использует Ajax для загрузки контента. Из-за этого готовый документ обычно загружается до того, как jQuery действительно загрузит предопределенное содержимое страницы. Что еще хуже, готовый документ может сработать несколько раз (более двух). Это также относится и к неправильно прикрепленным событиям нажатия / нажатия.

Именно поэтому важно использовать события jQuery Mobile.

Если вы хотите запустить что-то при запуске приложения, вы должны использовать событие mobileinit .

$(document).on("mobileinit", function(){
  //apply overrides here
});

С другой стороны, если вы хотите вызвать что-то на определенной странице init, вы должны использовать событие pagecreate .

$(somePageID).on("pagecreate", function(){
  //apply overrides here
});

Узнайте больше о событиях jQuery Mobile здесь .

...