因为从我的代码中,我希望用户创建无限的图像,因此必须以更短的方式创建它们,就像使用一个变量一样。
这是我在用户添加图片时调用的函数的代码:
(已编辑:此代码现已修复。)
function addImage(){
var imageAdded = new Image();
imageAdded.onload = function (img) {
var imgAdded = new fabric.Image(imageAdded, {
clipName: picID,
clipTo: function (ctx) {
return _.bind(clipByName, imgAdded)(ctx)
}
});
canvas.add(imgAdded);
};
var n = 0;
if(n == 0){
n = 1;
addEventListenerFabric();
}
}
function addEventListenerFabric(){
canvas.on("object:selected", function (e) {
alert(e.target.clipName + " is selected"); // fixed
canvas.renderAll();
});
}
我的代码会根据图像数量发出警报。例如,如果用户创建3个图像,则在选择图像时将发出3次警报。 是因为使用了一个变量吗?(也许我的代码完全错了,请重新检查)
谢谢你的建议!
答案 0 :(得分:1)
这是因为您在每个图像加载时将object:selected
绑定到画布。只需将其从onload
函数移出,它只会触发一次。