在画布Fabric.js

时间:2016-08-08 02:25:01

标签: javascript canvas fabricjs

我在这里有一个基本的设置来测试Fabric.js画布上的鼠标,我试图通过javascript手动触发鼠标事件(不是通过鼠标点击)来模拟画布上的点击。

HTML

<canvas id="c"></canvas>
<a id="testClick" href="javascript:void(0)">Test</a>

的Javascript

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

$("#testClick").click(function() {
   var e = jQuery.Event("mousedown", {
     pageX: 700,
     pageY: 300
   });
   $('#c').trigger(e);
});

canvas.on({"mouse:down": function() {
   alert("you clicked me");
}});

到目前为止,没有任何东西可以让我模拟这一点,帮助赞赏。

2 个答案:

答案 0 :(得分:0)

var canvas变量必须是jQuery定义的一部分。但我发现它是织物的一部分。因此.trigger()不能用于该定义。

.trigger()是jQuery框架,因此它可以用于jquery选中的元素$。

<强>更新

https://jsfiddle.net/zo98p72L/14/

由于已经被投了2次 - 我决定发布此内容。

答案 1 :(得分:0)

您可以直接在Fabric画布对象上触发事件,将参数作为第二个参数传递:

var fCanvas = new fabric.Canvas("c");

fCanvas.on("mouse:down", function(e) {
  alert("you clicked me here ("+e.pageX+","+e.pageY+")");
});

fCanvas.trigger("mouse:down", {
    pageX: 700,
    pageY: 400
});