2017-10-04 73 views
1

Fabric.js 1.7.19で選択したオブジェクトの選択解除を無効にする必要があります。私が試した:いくつかの悪い行動につながるだけでなく「選択解除」トリガ()削除:Fabric.js:選択解除を無効にする

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

これは、仕事をするようだが、選択したオブジェクトの除去は動作しません。

ドキュメントに記載されているonDeselect()コールバックに関しては、私はそれを動作させるようには思えません。誰か助けてもらえますか?ここ

フィドル:https://jsfiddle.net/gl03/khwmk4yx/

+0

を見ます' –

+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); 
    } 
}); 

あなたは以上の2つのオブジェクトがある場合(canvas._objects.length) `` setActiveObject`前に `((canvas._objects、画像)を見つける。)場合を追加することができればちょうど`追加https://jsfiddle.net/4bvb8ofz/2/

+0

ちょうど私が探していたもの、ありがとうそんなに! – gl03

関連する問題