javascript使用唯一属性从画布中删除多个对象
我正在使用fabric js并尝试在尝试删除组的父项时删除组项。下面是我的代码javascript使用唯一属性从画布中删除多个对象,javascript,html,canvas,fabricjs,Javascript,Html,Canvas,Fabricjs,我正在使用fabric js并尝试在尝试删除组的父项时删除组项。下面是我的代码 jQuery(document).on('click', ".deleteBtn", function () { if (canvas.getActiveObject()) { var product_id = canvas.getActiveObject().get('product_id'); } var canvasObj = canvas.getObjects
jQuery(document).on('click', ".deleteBtn", function () {
if (canvas.getActiveObject()) {
var product_id = canvas.getActiveObject().get('product_id');
}
var canvasObj = canvas.getObjects();
for(var i = 0; i < canvasObj.length; i++){
var objRef = canvasObj[i];
var accessoryId = objRef.get('accessory_product_id');
var product_type = objRef.get('product_type');
if(accessoryId == product_id && product_type == "accessory"){
canvas.remove(objRef);
}
}
});
您好,我在您的代码中注意到,您尝试获取活动对象的对象id,但无论是否存在活动对象,您继续循环,删除对象!! 也许,这就是问题的根源 我将展示一个使用forEach()函数的示例,但仅当存在活动对象时才继续删除对象:
jQuery(document).on('click', ".deleteBtn", function () {
//only if there is active object, do i delete objects
if (canvas.getActiveObject()) {
//get productId of active object
var product_id = canvas.getActiveObject().product_id;
//loop on the canvas objects
canvas.getObjects().forEach(function (object) {
if(object.accessoryId == product_id && object.product_type == "accessory"){
canvas.remove(object);
}
});//end forEach
}//end if
});//end 'click'
希望有帮助,祝你好运。你好,我在你的代码中注意到你尝试获取活动对象的id,但不管是否有活动对象,你继续循环,删除对象!! 也许,这就是问题的根源 我将展示一个使用forEach()函数的示例,但仅当存在活动对象时才继续删除对象:
jQuery(document).on('click', ".deleteBtn", function () {
//only if there is active object, do i delete objects
if (canvas.getActiveObject()) {
//get productId of active object
var product_id = canvas.getActiveObject().product_id;
//loop on the canvas objects
canvas.getObjects().forEach(function (object) {
if(object.accessoryId == product_id && object.product_type == "accessory"){
canvas.remove(object);
}
});//end forEach
}//end if
});//end 'click'
希望有帮助,祝你好运。请添加html标记。html标记对于这件事并没有那么重要,但正如您所要求的那样。我想在这里发生的是,当使用时,单击
data-product\u type=“parent”
中的删除按钮,所有其他图像都需要从画布中删除。thanksI指的是画布,而不是页面中的随机html!我在这里使用的是fabric.js
库。我在这里使用的唯一画布html标记是请包含添加的html标记。html标记对于这件事并没有那么重要,但正如您所要求的那样。我想在这里发生的是,当使用时,单击data-product\u type=“parent”
中的删除按钮,所有其他图像都需要从画布中删除。thanksI指的是画布,而不是页面中的随机html!我在这里使用的是fabric.js
库。我在这里使用的唯一画布html标记是