jQuery Mobile & TouchSwipe jQuery Плагин Ошибки - PullRequest
3 голосов
/ 21 марта 2012

Я пытаюсь использовать плагин TouchSwipe от Skinkers Labs в сочетании с jQuery Mobile на создаваемом мной мобильном веб-сайте, который также использует адаптивный дизайн.

TouchSwipe: http://labs.skinkers.com/touchSwipe/

Ситуация, с которой я столкнулся, заключается в том, что я могу заставить плагин TouchSwipe работать нормально с обычной страницей на мобильном устройстве, но как только я добавляю файл jQuery Mobile js, функция TouchSwipe больше не работает.

Этоошибка JS, которую я получаю (в строке 3256 из jquery-1.7.1.js):

Ошибка типа: undefined не является функцией (оценивается) ((jQuery.event.special [handleObj.origType] || {}). handle || handleObj.handler) .apply (matched.elem, args) ')

Здесь я включаю JavaScript в свой HTML:

<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<script type="text/javascript" src="js/jquery.touchSwipe-1.2.5.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>

<script type="text/javascript">
    $("#divCheckingWrapper").live("pagecreate", function(event) {
        var swipeOptions = {
            swipeStatus: swipeStatus,
            allowPageScroll: "vertical"
        };

        SWIPEABLE_NODES = $("#divCheckingSlider");
        SWIPEABLE_NODES.swipe(swipeOptions);

        CONTENT_WIDTH= SWIPEABLE_NODES.parent().width();
        MAX_NODES = SWIPEABLE_NODES.find("div.divCheckingSliders").length;
    });
</script>

<script type="text/javascript" src="js/jquery.mobile-1.1.0-rc.1.min.js"></script>

main.js включает в себя все вспомогательные функции из примера кода Image Swipe с сайта TouchSwipe:

http://labs.skinkers.com/touchSwipe/demo/image_scroll.php

Любая идея, почему я вижу эту ошибку?Как только я удаляю jQasery-файл jQuery Mobile, плагин работает нормально, но мне нужен jQuery Mobile для этого сайта.

Я с удовольствием выложу больше кода, если хотите.Дайте мне знать, если у вас есть какие-либо вопросы или вам нужна дополнительная информация.

Заранее благодарим за помощь!

Ответы [ 3 ]

8 голосов
/ 16 июля 2012

Вы идете об этом неправильно. Вы загружаете JQM после TouchSwipe, хотя TouchSwipe должен переопределить JQM. Это как строить окна перед стенами.

Я проверял, и все работает нормально, без необходимости менять имя. Все, что вам нужно сделать, это включить JQM до TouchSwipe.

<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.1.0-rc.1.min.js"></script>
<script type="text/javascript" src="js/jquery.touchSwipe-1.2.5.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>
1 голос
/ 23 апреля 2012

Это связано с конфликтом в пространстве имен jqm.И touchSwipe, и jqm используют одинаковые имена «swipe», «swipeleft» и т. Д.Я изменил имена в плагине touchSwipe с быстрой заменой поиска, чтобы избавиться от проблемы.Очевидно, что это не идеальное решение, но оно работает.

1 голос
/ 25 марта 2012

Я закончил тем, что отказался от TouchSwipe и использовал плагин iosSlider, который, кажется, работает намного лучше, и я не столкнулся с какими-либо проблемами при использовании его в сочетании с jQuery mobile.

http://iosscripts.com/iosslider-jquery-horizontal-slider-for-iphone-ipad-safari/

Надеюсь, это поможет кому-то еще с той же проблемой.

...