我正在开发一个使用fabric.js框架进行canvas交互的html5 canvas项目。现在我正在处理删除多个对象的问题。以下代码似乎不能跟踪选定的对象,而是跟踪画布上的所有对象。
var deleteSelectedObject = document.getElementById('delete-item');
deleteSelectedObject.onclick = function(){
var curSelectedObjects = new Array();
curSelectedObjects = canvas.getObjects(canvas.getActiveGroup);
canvas.discardActiveGroup();
for (var i = 0; i < curSelectedObjects.length; i++){
canvas.setActiveObject(curSelectedObjects[i]);
canvas.remove(canvas.getActiveObject());
}
};
不要把我的失败归咎于你。
var curSelectedObjects = new Array();
的写法,而是用[]
。特别是在这种情况下,你处理的不是数组,而是一个节点列表(!== 不是同一种东西)。 - Elias Van Ootegemcanvas.getActiveGroup().forEachObject(function(o){ canvas.remove(o) }); canvas.discardActiveGroup().renderAll();
- kangax