我的 CanvasModel 有以下视图,用户可以在其上从工具栏中拖放各种小部件。每当将某些内容放入 CanvasView 时,都会将一个新的 WidgetView 实例附加到 DOM 中。
最近添加的 Widget 也是可拖动的,以便用户将其放置在 Canvas 中他想要的任何位置。问题是,一旦最近附加的 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 仅当放置的项目具有“拖动”类或已从工具栏拖动时才会实例化一个小部件?