Fabricjs:在 canvas 上添加和选择对象

Fabricjs: Adding and selecting objects on canvas

这就是我想要达到的目标 in this jsfiddle:

问题是,当用户点击指向 select 的矩形时,它也会触发对 canvas 的点击,因此添加了另一个矩形。如何防止这种情况发生?

HTML

<canvas id="c" width="400" height="300"></canvas>

Javascript

var canvas = new fabric.Canvas('c');
canvas.on('mouse:down', function(options) {

    var rect = new fabric.Rect({
       left: options.e.clientX,
       top: options.e.clientY,
       width: 60,
       height: 60,
       fill: 'rgba(255,0,0,0.5)',
   });

   canvas.add(rect);

});

这是我修复它的方法,如果用户单击 canvas,options.target 为空,如果用户单击对象,则不为空:

canvas.on('mouse:down', function(options) {

    if (options.target)
       return;

    var rect = new fabric.Rect({
        left: options.e.clientX,
        top: options.e.clientY,
        width: 60,
        height: 60,
        fill: 'rgba(255,0,0,0.5)',
    });
    canvas.add(rect);
});