Когда я нажимаю rect, консоль печатает только щелчок по холсту, а не по прямоугольнику. Есть ли какое-нибудь решение?
var canvas = window._canvas = new fabric.Canvas('c');
var rect = new fabric.Rect({
left: 100,
top: 100,
fill: 'red',
width: 100,
height: 100
});
canvas.add(rect);
rect.on('mouse:down', function(options){
console.info("click the rect");
})
canvas.on('mouse:down',function(options){
console.info("click the canvas");
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/fabric.js/5.3.1/fabric.min.js"></script>
<canvas id = "c" width = "600" height = "600"></canvas>Отвечает ли это на ваш вопрос? Обнаружение щелчка по ткани. Прямоугольный холст
Да спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


«mouse:down» — это тип события Fabric.Canvas, но не событие Fabric.Rect.
Проверить, поэкспериментировав с мероприятием, можно на официальном сайте по ссылке ниже. http://fabricjs.com/events
Я не уверен, что именно будет делать квадрат, когда вы нажмете на него. Однако если вы хотите запустить функцию, когда прямоугольник выбран или отменен, напишите код следующим образом.
var canvas = window._canvas = new fabric.Canvas('c');
var rect = new fabric.Rect({
left: 100,
top: 100,
fill: 'red',
width: 100,
height: 100
});
canvas.add(rect);
rect.on('selected', function(options){
console.info("select the rect");
})
rect.on('deselected', function(options){
console.info("deselect the rect");
})
canvas.on('mouse:down',function(options){
console.info("click the canvas");
})
Я надеюсь, что это было полезно для вас. Спасибо :)
Спасибо, это полезно. Но у меня другой вопрос по выбору объектов. Если это возможно, не могли бы вы мне помочь? Большое спасибо. ссылка
rect.on('selected', function(options) { console.info("нажмите на прямоугольник"); }); Эта модификация может работать, но она все равно печатает «щелкните по холсту».