【发布时间】:2013-01-02 15:59:57
【问题描述】:
我的 CanvasModel 有以下视图,用户可以在其上从工具栏中拖放各种小部件。每当将某些内容放入 CanvasView 时,都会将一个新的 WidgetView 实例附加到 DOM 中。
最近添加的小部件也是可拖动的,以便用户将其放置在画布中的任何位置。问题是,只要删除了最近附加的 Widget,就会附加另一个 WidgetView 实例
var CanvasView = Backbone.View.extend ({
tagName: 'section',
className: 'canvas',
events: {
'drop': 'instantiateWidget'
},
initialize: function(){
this.$el.droppable({});
},
render: function(){
return this;
},
instantiateWidget: function() {
this.$el.on("drop", function(event, ui){}).append(new WidgetView({model: myWidget}).render().el);
}
});
我只想实例化一个从工具栏拖到画布上的小部件(它们有一个“拖拽”类)。有没有办法“过滤”放置监听器,所以 CanvasView 将仅在放置的项目具有“拖动”类或已从工具栏拖动时实例化一个小部件?
【问题讨论】:
标签: backbone.js backbone-views backbone-events jquery-droppable jquery-draggable