Mobile gestures in backbone.js

2020-05-24 06:16发布

Can I have mobile gestures like swipe, tap, pinch etc in the Backbone.js View events? To be more specific following is my code.

Backbone.View.extend({
     initialize:function(){
        //initialization 
     },
     Events:{
          "swipe-left #homeBtn":"homeSwipe"
     },
     homeSwipe:function(){
        alert("Event Swipe left triggered!");
     }
});

Can I have the mobile gestures like swipe, swipe-left/right, pinch, tap etc to work with backbone.js?

2条回答
等我变得足够好
2楼-- · 2020-05-24 06:45

Backbone relies on jQuery.bind to manage the DOM events.

So the question is that if jQuery supports these events and looks like jQuery Mobile does, now you have to check how to integrate jQuery Mobile and Backbone.

查看更多
冷血范
3楼-- · 2020-05-24 06:48

Download and include Hammer.js and then use Backbone view events like normal!

events:{
    'swipe': 'onSwipe'
},

initialize: function(){
    // I think you can get away doing this here once, but I have not tested.
    // If not, just move it to the `render` method
    new Hammer(this.el);
},

onSwipe: function(e){
    console.log(e.direction); // left or right
}

Also, you could take a look at my simple Backbone view Gist

Update

Based on the feedback, it looks like new Hammer(this.el) must be called on the backbone view for this to work. I've updated the example to reflect this.

查看更多
登录 后发表回答