次の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は、ドロップされたアイテムに「ドラッグ」のクラスがあるか、ツールバーからドラッグされた場合にのみウィジェットをインスタンス化しますか?