如何在侦听器之后添加可拖动功能

时间:2015-04-02 20:49:13

标签: javascript backbone.js

所以我试图避免使用JQUERY UI或者任何库JS,并尝试在backbone.JS中创建一些拖放功能。我已经能够取得一些成功,你可以在左侧的www.smartkrawl.com上看到,但无法在画布部分中移动表格。下面是一段代码,用于侦听mousedown事件以执行可拖动的函数,但如果您查看站点的源代码,则JS文件(尤其是ocoa-tables.js)可用。任何帮助都会非常感激。

    var Table = Backbone.Model.extend({
    initialize:function(options){
        this.set("x",options.x);
        this.set("y",options.y);
        this.set("el",options.el);
        $('body').on('mousedown','.table', function() {
            console.log('mousedown')
        });

    }

});

2 个答案:

答案 0 :(得分:0)

您可能应该使用视图而不是模型。因此,将每个表作为单独的视图,然后使用events哈希添加侦听器,而不是在body

上委托它
var TableView = Backbone.View.extend({

    events: {
        "mousedown": "_onMouseDown"
    },

    _onMouseDown: function(e) {
        console.log('mousedown')
    }
});

var firstTable = new TableView({ el: ".first.table" });
var secondTable = new TableView({ el: ".second.table" });

答案 1 :(得分:0)

我不熟悉backbone.js虽然我觉得我对jQuery有一个很好的把握。我希望我不会问一个明显的问题,不过如果它是你想要的表,为什么不直接针对这个表呢?

$(".table").on("mousedown", function() {
...
});