我可以获得什么来处理 fabric js 事件的目标?
What can I get a handle on the target of a fabric js event?
在 this fabricjs tutorial section 中它说将听众放在像这样的对象上
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
console.log('selected a rectangle');
});
很好,但我不想将字符串记录到控制台。我想操纵矩形。具体来说,矩形在默认情况下是不可选择的,并且基于应用程序状态,我需要使其可选择。
我不知道如何从事件处理程序内部获取矩形的句柄。我不知道该怎么做。
在您提供的示例中,您已将事件附加到对象本身。因此,您可以使用 this
或变量名(在您的情况下为 rect
)访问对象。这是一个例子
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
console.log(this);
this.set({width:200});
});
或者,如果您将它附加到 canvas 以便它侦听所有 object:selected
事件,您可以像这样访问事件发生的对象:
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
canvas.on('object:selected', function (e) {
console.log('selected a rectangle');
e.target.set({width:200});
});
在 this fabricjs tutorial section 中它说将听众放在像这样的对象上
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
console.log('selected a rectangle');
});
很好,但我不想将字符串记录到控制台。我想操纵矩形。具体来说,矩形在默认情况下是不可选择的,并且基于应用程序状态,我需要使其可选择。
我不知道如何从事件处理程序内部获取矩形的句柄。我不知道该怎么做。
在您提供的示例中,您已将事件附加到对象本身。因此,您可以使用 this
或变量名(在您的情况下为 rect
)访问对象。这是一个例子
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
console.log(this);
this.set({width:200});
});
或者,如果您将它附加到 canvas 以便它侦听所有 object:selected
事件,您可以像这样访问事件发生的对象:
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
canvas.on('object:selected', function (e) {
console.log('selected a rectangle');
e.target.set({width:200});
});