Использовать jQuery мобильного телефона только


Я хотел бы использовать виджеты из jQuery Mobile-кнопки, выпадающий список и т. д.

У меня уже есть сайт, который был разработан без использования jQuery mobile, который имеет свои собственные меню и ссылки - и когда я пытаюсь добавить к нему jQuery mobile framework, это вызывает всевозможные проблемы (переопределяет CSS, пытается перехватить переходы страниц и т. д.).

Можно ли отключить некоторые функции фреймворка?

Это связано с вопросом: удаление неиспользуемого jQuery Мобильные элементы? - но он имеет дело с минимизацией размера скрипта. Я только хочу отключить определенную функциональность, чтобы она не мешала остальной части моего приложения.

Update: часть проблемы, вызванной использованием jQuery Mobile "как есть", связана с тем, что он попытается загрузить все ссылки через ajax. Его можно смягчить, добавив

rel="external"
к ссылкам, поэтому jQM не будет пытаться загрузить его через ajax.
3 3

3 ответа:

Скоро появится Строитель для JQM. По состоянию на 5/4/2012 его все еще в бета-версии. Держитесь там, и эта функция будет доступна в любое время. Я постараюсь обновить этот ответ, когда он будет выпущен.

Update вот ссылка на jqm builder http://jquerymobile.com/download-builder/

Добавление атрибута data-role= "none" к любому элементу формы или кнопки указывает платформе не применять какие-либо расширенные стили или сценарии

Создание пакета только с необходимыми компонентами - это первый шаг, который вы должны сделать, но иногда этого недостаточно.

Есть также фрагмент кода, который мы недавно нашли и использовали, чтобы остановить загрузку мобильных панелей jQuery на одной странице. Это очень полезно, если вы хотите использовать мобильные компоненты jQuery отдельно без самого фреймворка. Другими словами, вы все еще хотите иметь нормальное поведение страницы (т. е. перезагружать страницу, нажимая ссылки) и использовать некоторые jQuery Mobile комплектующие.

И вот этот код, который сделал трюк для нашего проекта Symfony 2:

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