jQuery Mobile ломает мой сайт

Я загружаю jQuery Mobile на свой сайт, когда использую только мобильное устройство с сенсорным экраном. Когда я делаю все же. Это все портит. Например, некоторые меню не работают должным образом, а также слова «загрузка, загрузка, неопределенная» появляются внизу страницы. Я знаю, что что-то упустил, но не знаю что.

Любые идеи о том, что я мог бы пропустить?

Спасибо

РЕДАКТИРОВАТЬ: Хорошо, поэтому я вынул все скрипты, которые я запускаю, за исключением jQuery и jQuery Mobile. Сначала я вызываю jQuery, а затем jQuery Mobile. Это все еще ломает аспекты сайта.

Что это ломает:  - Я не могу перейти на любую другую страницу через панель навигации, если я нажимаю на элемент навигации и смотрю в URL, появляется правильный URL (с # в нем), например: / # / about-us / Затем просто перенаправляет на домашнюю страницу и страница становится белой

Select menus have weird results. It prints out whatever is in the select right beside it. And if you in landscape mode on the ipad and you click on the select, it sends you to the bottom of the page (weird).

it prints out 'loading' twice and 'undefined' once at the bottom of the page

Все, что у меня есть для сценариев, это jQuery и jQuery Mobile. Я должен также упомянуть, что я использую WordPress, чтобы он мог поставить в очередь некоторые другие скрипты (я снял с учета WordPress версию jquery и поставил в очередь свои собственные)

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

 Daniel A. White31 мая 2012 г., 18:51
ну, многие могут ошибаться, поэтому нет никакой возможности полностью вам помочь.
 jasonaburton31 мая 2012 г., 18:48
Мне трудно дать какой-либо код, потому что я не знаю, что является причиной проблемы, но в основном у меня есть jQuery, несколько сценариев и jQuery Mobile. Как только я вставляю мобильный телефон, он дает много странных результатов. Другое дело, что он не позволит мне переходить на другие страницы. Это всегда возвращает меня на домашнюю страницу.
 jasonaburton31 мая 2012 г., 19:18
Я добавил кое-что в свой пост, хотя сомневаюсь, что это поможет в диагностике проблемы ...
 Daniel A. White31 мая 2012 г., 18:42
нам нужен код и / или больше контекста.
 TJ Sherrill23 июл. 2015 г., 17:12
У меня была точно такая же проблема (сейчас ее 2015). Все еще работаем, чтобы решить это

Ответы на вопрос(3)

Для таких, как я, где

$.mobile.ajaxEnabled = false;

не сработало и весь макет страницы кажется все еще сломанным:

Для меня это работает (- установите его перед загрузкой файла jquery mobile):

<script>
    // Preload configuration
    $( document ).on( "mobileinit", function() {
        $.mobile.autoInitializePage = false; // This one does the job
    });
</script>

Кроме того, если вы хотите отключить мобильную автоматическую ссылку и обработку форм jQuery через ajax, установите (как сказал dvk3) ajaxEnabled в falseand pushStateEnabled в false, как рекомендовано:

$.mobile.ajaxEnabled = false;
$.mobile.pushStateEnabled = false; // Recommended is false, when ajax is disabled

Для получения дополнительной информации см .:http://api.jquerymobile.com/global-config/

Я использую v1.4.5

То же самое случилось со мной, смешав мобильный с другими фреймворками. Исправлена проблема, но получалась пользовательская сборка jQuery.mobile. В моем случае мне нужно было проводить пальцем только для сенсорных устройств, поэтому я использовал пользовательский файл min, и после этого ничего не сломалось.

Это действительно зависит, нужен ли вам jQuery.mobile или вам нужен только определенный функционал, виджеты, события? Используйте пользовательскую версию, которую вы можете создать самостоятельно.

Вы можете сделать и скачать свой здесь:http://jquerymobile.com/download-builder/

Надеюсь, это сработало и у вас!

Решение Вопроса

jQueryMobile замените ваши нормальные ссылки наAjax один, так что каждая страница может быть загружена с помощью ajax, текст на странице документов:

(..) Ajax is used to load the contents of each page into the DOM as you navigate, and the DOM ready handler only executes for the first page. To execute code whenever a new page is loaded and created, you can bind to the pageinit event. This event is explained in detail at the bottom of this page.

Если вы хотите отключить одну ссылку для загрузки с помощью ajax, вы должны написать что-то вроде этого:

<a href="/some_page" data-ajax="false" >link</a>

или сделать это глобально:

$(document).bind("mobileinit", function() {
  $.mobile.ajaxEnabled = false;
});

JM также делает замену на другие элементы, поэтому вы должны попробовать использоватьdata-role атрибут, например:

<select id="test" data-role="none">

отключить замену этого элемента.

 jasonaburton01 июн. 2012 г., 19:15
Работал как шарм.

Ваш ответ на вопрос