javascript - Fabric.js 中的鼠标 :down vs. mousedown

标签 javascript fabricjs mousedown

这是一个包含 Canvas 和矩形的 Fabric.js 示例,每个矩形上都有一个鼠标按下处理程序:

var canvas = new fabric.Canvas('c');

var rect = new fabric.Rect({ 
  left: 100, 
  top: 100, 
  width: 50, 
  height: 50, 
  fill: '#faa', 
})

canvas.add(rect);

canvas.on('mouse:down', function(options) {
  console.log('canvas event');
});

rect.on('mousedown', function(options) {
  console.log('rect event');
});

为什么在 Canvas 上需要使用 mouse:down ,而在矩形上需要使用 mousedown ?如果我改变其中任何一个,他们就会停止工作。 mousedown 实际上不是一个结构事件吗?如果是,处理函数是否应该有所不同?

JsFiddle:http://jsfiddle.net/243kau3x/4/

最佳答案

它们都是fabric js事件。主要区别在于事件所附加的实例类型。
mouse:down 是特定于 Fabric Canvas 实例的事件,而 mousedown 特定于 Fabric Object 实例(在您的情况下是一个 rect)。

可以在 Canvas 和 Object 实例上监听不同类型的事件。可用事件的完整列表可在 Fabric js 官方网站上找到。

特定于 Canvas 实例的事件在库官方 GitHub 页面上详细介绍 post .

关于javascript - Fabric.js 中的鼠标 :down vs. mousedown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841295/

相关文章:

javascript - Fabric .js : Is there a way to make the "move" listener fire when moved as part of a selection?

javascript - 隐藏一个 Canvas 会使另一个 Canvas 无法选择

c# - C# 中的停靠面板套件不会触发 mousedown 事件

javascript - 是否有用于 XML 绑定(bind)的 JavaScript API——类似于 Java 的 JAXB?

c# - 从客户端脚本调用代码隐藏中的方法

jquery - Fabric.js 中的复制/粘贴功能

javascript - 更改鼠标键码 - jquery

swift - macOS 在 KeyDown 中检测鼠标按钮是否按下

javascript - 单击 jQuery 时显示

javascript - polymer 开关页面