使用fabric js中的事件处理程序(.on)将数据发送到函数

时间:2017-08-27 18:04:25

标签: javascript fabricjs

正如标题解释的那样,我正在尝试通过事件处理程序将数据发送到函数。

我尝试了以下内容:

canvas.on("mouse:wheel",{name:"spin"}, constructSpin);
function constructSpin(e){
console.log(e.data.name);
}
遗憾的是,这不起作用:(

有没有办法使用事件处理程序将数据发送到函数?

注意:我在结构文档中找到了这个:

  

on(eventName,handler)→{Self}

所以看起来建设中没有数据

2 个答案:

答案 0 :(得分:2)

如果您希望在constructSpin事件上传递一些自定义数据,则应按以下方式构建并调用 mouse:wheel 函数:

canvas.on("mouse:wheel", function(e) {
   constructSpin(e, { name: "spin" });
});

function constructSpin(event, data) {
   console.log(data.name);
}

答案 1 :(得分:0)

面料事件有点同义。 您正在使用canvas元素旋转滚轮,然后返回2个事件,一个在画布级别,一个在对象级别。

如果spin是画布上的特定对象,或者是对象的名称属性,则可以:

canvas.on("mouse:wheel", function(opt) {
  // opt.e => real event
  // opt.target => object where you spinned over
  // opt.target.name maybe is what are you looking for
});

如果我的假设是错误的,你可以做其他答案中已经提出的建议:

canvas.on("mouse:wheel", function(opt) {
  // opt.e => real event
  // opt.target => object where you spinned over
  opt.name = 'spin'
  yourFunction(opt);
});