fabric.js 怎么给 Group 中的子元素绑定事件
时间: 2023-02-10 19:26:03 浏览: 263
可以使用 Group 的 `on` 方法来为 Group 中的子元素绑定事件。
例如,要为 Group 中的所有子元素绑定单击事件,可以这样写:
```
group.on('mouseup', function() {
console.log('Group clicked');
});
```
如果想要为 Group 中的某个特定子元素绑定事件,可以使用子元素的 `evented` 属性:
```
var rect = new fabric.Rect({
width: 20,
height: 20,
left: 10,
top: 10,
fill: '#f55',
evented: true
});
group.addWithUpdate(rect);
rect.on('mouseup', function() {
console.log('Rectangle clicked');
});
```
请注意,如果子元素的 `evented` 属性设置为 `false`,则不会触发事件。
相关问题
fabric.js 怎么给 Group 中的子元素的子元素绑定事件
可以使用 `fabric.Group#on` 方法来绑定 Group 中的子元素的子元素的事件。
例如,以下代码展示了如何在 Group 中的子元素的子元素上绑定单击事件:
```
group.on('object:click', function(options) {
// options.target 是触发事件的子元素的子元素
console.log(options.target.type);
});
```
注意,在 Group 中的子元素的子元素上触发的事件会在 Group 上触发,因此如果需要在 Group 上绑定事件,可以使用 `group.on('click', function(options) { ... })`。
fabric.js 获取Group中的某个元素中的子元素,给该元素绑定点击事件
可以使用 fabric.Group.getObjects() 方法来获取 Group 中的所有元素。然后遍历这些元素,找到你想要绑定点击事件的元素,调用它的 on() 方法来绑定事件。
例如:
```
var group = new fabric.Group([circle, rectangle]);
group.getObjects().forEach(function(obj) {
if (obj.type === 'circle') {
obj.on('mousedown', function() {
console.log('Circle clicked');
});
}
});
```
在这个例子中,我们遍历了 Group 中的所有元素,找到了类型为 'circle' 的元素,然后给它绑定了 'mousedown' 事件。你也可以使用其他的事件类型,例如 'click' 或者 'tap'。
阅读全文