在 Kineticjs 中删除数组中的组
Removing Groups within an Array in Kineticjs
我正在尝试删除包含组(包含形状)或简单形状(线条,矩形,圆形等)作为其元素的数组元素。我的函数如下所示:
deleteSelectedShape = function () {
var i,
shapeObj,
selectedObjects = currentContext.getSelectedObjects(),
shapeLayer = currentContext.getShapeLayer();
if (selectedObjects && selectedObjects.length > 0) {
for (i = 0; i < selectedObjects.length; i += 1) {
shapeObj = selectedObjects[i];
// shapeObj.remove(); results same error as mentioned at last
if (shapeObj.nodeType === "Group") {
shapeObj.destroyChildren();
}
else{
shapeObj.destroy();
}
}
}
selectedObjects = [];
shapeLayer.draw();
};
我也试过这个
if (shapeObj.nodeType === "Group") {
var childs = [];
childs = shapeObj.getChildren();
for (var j = 0; j < childs.length; j++) {
childs[j].remove();
}
}
else{
shapeObj.remove();
}
}
}
在这里,单个形状被删除,但如果数组中有组,则会给出错误:
TypeError: this.getParent(...) is undefined in Kineticjs file
请建议我正确的想法。谢谢!!!
一个问题:从数组中删除项目时,必须反向遍历该数组。
var i=selectedObjects.length-1;
while( i-- >=0 ){
var shapeObj = selectedObjects[i];
if (shapeObj.nodeType === "Group") {
shapeObj.destroyChildren();
}else{
shapeObj.destroy();
}
}
相关文章:
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 添加和删除隐藏字段数组中的值,而不提交表单
- 从数组中删除重复条目,并在javascript中按顺序排列
- 一些元素没有从数组中删除
- 删除JS数组中的最小数字
- 从数组中删除三元组项
- 删除重复的数组值,然后存储它们[反应]
- 在特定索引处剥离/删除数组中的值
- 数组删除重复结果Javascript
- 字符串替换或通过数组删除
- js中的对象数组:删除重复项
- KnockoutJS.Mapping.FromJS-可观察数组-删除不起作用
- 用于垃圾收集的Javascript数组删除
- 为什么”——数组.删除数组的最后一个元素
- PHP循环通过脚本数组&删除项目
- 谷歌地图API:试图使用数组删除多个标记
- 带有for循环+条件的Javascript数组删除不必要的元素
- 在JavaScript中管理像ArrayList这样的数组:删除一个元素并关闭创建的间隙