Фоновый обработчик пролистывания для определенных элементов

0

У меня есть этот код на моем сайте, чтобы вы могли вернуться/вперед, используя салфетки

$(function() {
  $(window).on("swipeleft", jqmForward)
           .on("swiperight", jqmBack);
});

Проблема заключается в том, что он также возвращается/вперед, когда вы пытаетесь прокручивать то, что уже имеет свой собственный обработчик салфетки (например, галерею слайдов сторонних разработчиков)

Как заставить его работать только на "фоне" (чтобы игнорировать некоторые элементы, у которых есть собственный обработчик салфетки)?

EDIT: Упрощенный код выше, и я пробовал это, но не работает (возможно, потому, что я добавляю его в окно не с одним div)

$('.swiper-wrapper').off();
  • 0
    $(window).not("skipThis").on(swipeleft, ....
  • 0
    @ Омар: Спасибо, но теперь это не работает вообще (без ошибок)
Теги:
events
jquery-mobile

1 ответ

0
Лучший ответ

Я закончил с глобальной переменной allowGlobalSwipe и динамически отключил ее с помощью Swiper API.

var allowGlobalSwipe = true; // <--

$(function() {
  $(window).on("swiperight", jqmBack);

  $('#slideContainer').swiper({
    onTouchStart: function () { allowGlobalSwipe = false; },   // <--
    onTouchEnd: function () { allowGlobalSwipe = true; }
  });
});

function jqmBack(e) {
  if (!allowGlobalSwipe) return;  // <--

  var prevpage = $('div.ui-page-active').prevAll('div[data-role="page"]');
  if (prevpage.length > 0)
    $.mobile.changePage($(prevpage[0]), { transition: "slide", reverse: true }, true, true);
}
  • 0
    Вы реализовали свой собственный способ остановить распространение событий, но он уже существует. Вы должны быть в состоянии выбрать элементы, которые вы не хотите активировать, и активировать глобальное перелистывание и остановить распространение touchmove : $([some elements]).on("touchmove", function (event) {event.stopPropagation();}) . Другие связанные события - touchstart и touchend .
  • 0
    Но я использую Swiper, а не свой собственный код. Или я что-то упустил?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню