在Backbone.js视图中拖动gabilly.js事件

Draggabilly.js events in the Backbone.js view

本文关键字:js gabilly 事件 拖动 视图 Backbone      更新时间:2023-09-26

我在主干视图中使用Draggabilly.js,如下所示:

var appView = Backbone.View.extend({
    initialize: function(){
        this.render();
    },
    render: function(){
     var draggie = new Draggabilly(this.el);
     draggie.on('dragEnd', this.updateModel); //This works by I can access the this.model
    },
    events: {
      'dragEnd':'updateModel' //This doesn't work
    },
    updateModel: function(instance, event, pointer){
      //Here I want to update my model bassed on the pointer's x and y
      //However I can't access this.model
    }
)};

当拖动结束时,可拖动地提供和事件'dragEnd'。但是,我可以将其作为一个事件集成到我的Backbone视图中。

你能给我建议吗?

为了访问View上下文,您可以执行以下操作:

draggie.on('dragEnd', _.bind( this.updateModel, this ));

但是,如果以后要删除dragEnd的侦听器,那么在初始化代码中使用bindAll可能会很有用

initialize: function() {
   _.bindAll(this, 'updateModel');
}

有关更多信息,请查看Backbone文档。