2017-10-04 257 views
1

我需要禁用在Fabric.js 1.7.19中取消选择所选对象。我想:Fabric.js:禁用取消选择

object.on('deselected', function(e) { 
    canvas.setActiveObject(object); 
    }); 

这似乎做的工作,但去除所选对象的不工作:删除()触发“取消”为好,导致一些不良行为。

至于文档中提到的onDeselect()回调函数,我似乎无法得到它的工作。有人能帮我一个例子吗?

小提琴这里:https://jsfiddle.net/gl03/khwmk4yx/

+0

只需添加'如果(canvas._objects.length)''之前如果有两个以上的对象setActiveObject'可以添加'如果(找到(canvas._objects,图像)) ' –

+0

谢谢,@artgb - 'if(canvas._objects.length)'工作,但我有多个对象。 'if(find(canvas._objects,image))'不起作用,它仍然允许取消选择。 [更新小提琴](https://jsfiddle.net/gl03/4bvb8ofz/1/) – gl03

+0

请参阅https://jsfiddle.net/4bvb8ofz/2/定义'find'函数 –

回答

1

如果对象是canvas._objects阵列现有您可以检查。

function find(objs, obj){ 
    for (var i = 0; i< objs.length; i++) 
     if(objs[i] == obj) return 1; 
    return 0; 
} 
image.on('deselected', function(e) { 
    if(find(canvas._objects,image)) { 
     console.log('deselected'); 
     canvas.setActiveObject(image); 
    } 
}); 

看到https://jsfiddle.net/4bvb8ofz/2/

+0

正是我所寻找的,谢谢非常! – gl03