1
此答案提供了一个有用的解释,说明如何将“链接”(实际上是重定向到URL的事件)添加到特定对象而不是画布上的所有对象:防止在由fabric.js调用的函数中进行惰性评估
How to add URL to an image in Fabric.js?
然而,放置,生成多个对象在一个循环内时,它只链接到创建的值的最后一个对象。
下面是一个例子:
for (var p = 0; p<2; p++) {
var object = new fabric.Circle({ radius: 10, top: 10 + 20 * p, left: 10 });
object.on('selected', function() {
window.location.href = "mylink" + "/" + p;
})
canvas.add(object);
}
这将有两个对象链接到“myLink的/ 1”的时候,我要的是第一个对象链接到“myLink的/ 0”,第二个链接到“mylink/1”。
我的JavaScript技能卡在1999年,但这看起来像一个懒惰的加载问题给我。我如何强制从每个循环创建的对象具有自己的功能?
一个更简单的解决方法是使用'让p'而不是'无功p' - 通过互联网爆炸物和瞧 –
@JaromandaX一个transpiler运行它 - 是的。现在,ES6在任何地方都能得到支持,使用'let'是最好的选择。正如[这Mozilla黑客帖子](https://hacks.mozilla.org/2015/07/es6-in-depth-let-and-const/)解释:“形式循环for(let x ... )'在每次迭代中为'x'创建一个新的绑定。“ –
有帮助。谢谢! –