2012-04-13 10 views
4

Я создаю мобильный сайт jQuery, но также должен использовать виджеты jQuery UI - в частности, слайдер.jQuery UI слайдер, конфликтующий с jQuery Мобильный слайдер

Проблема в том, что эти функции конфликтуют. Мне очень жаль, что jQm не написали свои файлы ui с префиксом «мобильный», но я думаю, что это, вероятно, слишком поздно для этого.

Это проблема, которую я испытываю. Если я загружаю jquery ui после jQuery мобильных jquery ui слайдеры работают - отлично НО, то мои пользовательские переходы страниц не работают, и, без сомнения, нагрузки других вещей в jQm перезаписываются, о которых я еще не знаю.

Если я делаю это наоборот, то работают пользовательские переходы jQuery, но тогда слайдеры jquery ui не работают, поскольку вместо них используются слайдеры jQm.

Я не могу использовать слайдеры jQm, поскольку мне нужна вертикальная опция и другие функции ползунков пользовательского интерфейса jQuery.

Что я ищу - это какое-то решение, которое не предполагает, что я взламываю jQuery UI или jQuery Mobile, потому что я не хочу делать эти изменения с каждым обновлением jQm/jUI, если это возможно. Таким образом, я могу загрузить jquery ui, чтобы я вызывал его функции с префиксом «ui-» или jQuery mobile, так что его конфликтующие функции имеют префикс «мобильный» - возможно, в мобильной функции init в jqm js jq?

Я нашел что-то здесь https://github.com/aFarkas/jMediaelement/issues/17 и попробовал код, но не мог заставить его работать в моей функции.

Любые идеи?

+0

Я действительно отчаянно нужен ответ на это, пожалуйста, пожалуйста, кто-нибудь? –

ответ

-1

Вот обходной путь, а не исправление. Я использовал построитель загрузки JQM со всеми проверенными опциями, кроме ползунка, потому что я использую слайдер jQ-ui. Проблема решена, но теперь я не могу использовать слайдер JQM. Не то чтобы мне нужно.

+0

OP утверждает, что ему нужны оба. – James

7

Это сработало для меня. если у другой есть такая же проблема. Я должен добавить следующую строку после Jquery UI и перед JQuery мобильного

$.fn.uislider = $.fn.slider; 

пример кода будет:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 
<script> 
    // rename to avoid conflict with jquery mobile 
    $.fn.uislider = $.fn.slider; 
    </script> 
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script> 
<script> 
    $(function() { 
    $("#slider").uislider(); 
    }); 
    </script> 
Смежные вопросы