2017-01-18 4 views
0

Ich habe Hammer js und das jquery-hammer-Plugin, das eine sehr einfache Wischaktion behandelt.Hammer JS wischen Kalenderdaten

Was passiert, wenn ich nach links wische, habe ich einen Kalender mit einem Datum, das mit einem Tag zurückgeht, und wenn ich nach rechts wische, sollte es mit einem Tag vorwärts gehen. In dem Moment, wenn ich wische, springt es mehrere Tage, abhängig von der Richtung, die ich wische und der Zeit, die der Swipe dauerte (ich vermute).

Wenn ich diese Funktion zu einfachen Klickereignissen in einem linken und rechten Container ändere, werden die Daten wie erwartet nur um einen Tag pro Klick erweitert.

event.gesture.preventDefault(); 

gibt einen „nicht-Funktion Fehler“

Wie kann ich die Swipe nur nennen diese Funktion einmal für jeden Swipe bekommen?

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

Ich habe es geschafft, die drag_lock_min_distance auf 50 zu ändern, jetzt müssen Sie für 50px wischen, bevor es das Datum ändert und dabei ändert sich das Datum nur einmal. Nicht ideal, denn auf Handys ist das ein großer Schlag. Andere Vorschläge sind willkommen. –

Antwort

0

Mein Kommentar oben ist völlig falsch. Zu prüfen, in welche Richtung sich der Swipe bewegt, anstatt nur auf "swipeleft" oder "swiperight" zu bauen, funktioniert. Keine mehrfachen Datumsänderungen.

swipeMe: function(e){ 

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