2017-01-18 17 views
0

У меня есть молот js и плагин jquery-hammer, который обрабатывает очень простое действие салфетки.Hammer JS swipe calendar date

Что произойдет, когда я провёл влево, у меня есть календарь с датой, которая начинается с одного дня, и когда я прокручиваю вправо, он должен идти вперед с одним днем. В тот момент, когда я сажусь, он прыгает через несколько дней в зависимости от направления, которое я провёл, и времени, когда салфетка взяла (я предполагаю).

Когда я изменяю эту функцию на простые события щелчка в левом и правом контейнере, даты продвигаются только на один день за клик, как ожидалось.

event.gesture.preventDefault(); 

дает «не ошибка функции»

Как я могу получить красть только вызвать эту функцию один раз для каждой салфетки?

module.exports = View.extend({ 
    template: 'bookings/templates/components/body', 
    className:'bookings-lists', 
    deviceType: App.browser.device.deviceType, 
    events: { 
     'swipe' : 'swipeMe' 
    }, 
    swipeMe: function(e){ 
     var that = this; 
     container.hammer().on('swipeleft', function(event) { 
      event.gesture.preventDefault(); 
      that.model.pushDateForward(); 
     }).on('swiperight', function(event) { 
      event.gesture.preventDefault(); 
      that.model.pushDateBackward(); 
     }); 
    } }); 
+0

Мне удалось изменить значение drag_lock_min_distance на 50, поэтому теперь вам нужно провести 50px до того, как он изменит дату, и при этом дата изменяется только один раз. Не идеально, потому что на мобильных телефонах, которые являются крупными салфетки. Любые другие предложения приветствуются. –

ответ

0

Мой комментарий выше полностью неверен. Проверка того, в каком направлении работает салфетка, а не просто использование встроенных «swipeleft» или «swiperight». Не более нескольких изменений даты.

swipeMe: function(e){ 

     if(e.gesture.direction === 4) 
     { 
      e.preventDefault(); 
      this.model.pushDateBackward(); 
     } 
     else if(e.gesture.direction === 2) 
     { 
      e.preventDefault(); 
      this.model.pushDateForward(); 
     } 
    },