Javascript 如何在fabric.js的画布上触发自定义事件?

Javascript 如何在fabric.js的画布上触发自定义事件?,javascript,html,canvas,fabricjs,Javascript,Html,Canvas,Fabricjs,我想在fabric.js的画布上注册JavaScript事件。如何在画布上触发自定义事件?如果您想使用自定义事件扩展fabricjs事件系统,这非常简单: var canvas = new fabric.Canvas('c'); // listen for any event like fabricjs do canvas.on('custom:event', function(event) { // you will have your data here in `event` objec

我想在fabric.js的画布上注册JavaScript事件。如何在画布上触发自定义事件?

如果您想使用自定义事件扩展fabricjs事件系统,这非常简单:

var canvas = new fabric.Canvas('c');
// listen for any event like fabricjs do
canvas.on('custom:event', function(event) {
  // you will have your data here in `event` object 
});
// fire any event with any payload you want
canvas.fire('custom:event', { any: 'payload' });
我更喜欢这种方式,因为您不使用任何其他LIB,并且在所有情况下(本机和自定义事件)仍具有相同的语法

更新 不要忘记在触发事件之前应该定义侦听器!
用一个工作示例检查fiddle

如果您想用自定义事件扩展fabricjs事件系统,这非常简单:

var canvas = new fabric.Canvas('c');
// listen for any event like fabricjs do
canvas.on('custom:event', function(event) {
  // you will have your data here in `event` object 
});
// fire any event with any payload you want
canvas.fire('custom:event', { any: 'payload' });
我更喜欢这种方式,因为您不使用任何其他LIB,并且在所有情况下(本机和自定义事件)仍具有相同的语法

更新 不要忘记在触发事件之前应该定义侦听器!
用一个工作示例检查fiddle

谢谢peter的反馈。我会尝试这个解决方案。我已经尝试过这个解决方案,但它对我不起作用。@PiyushDholariya如果你有问题,最好加一把小提琴或其他东西。我认为您只需在添加侦听器之前触发事件。你可以在帖子中查看我的更新,并链接到一个正在工作的小提琴。这是如此酷的API设计。感谢peter的反馈。我会尝试这个解决方案。我已经尝试过这个解决方案,但它对我不起作用。@PiyushDholariya如果你有问题,最好加一把小提琴或其他东西。我认为您只需在添加侦听器之前触发事件。你可以在帖子中查看我的更新,并链接到一个正在工作的小提琴。这是如此酷的API设计。