Fabric.js dbclick 事件子元素

Posted

技术标签:

【中文标题】Fabric.js dbclick 事件子元素【英文标题】:Fabric.js dbclick event child element 【发布时间】:2020-10-26 07:56:00 【问题描述】:

我在画布中有一个织物元素,我想在该特定元素上添加一个 dbclick 事件。

customText = new fabric.Text(customTextContent, 
    pp_type: 'custom_text',
    pp_label: _t('my text'),
    // lockUniScaling: true,
    uniqId: uniqId,
    fill: customColor,
    fontFamily: customFont,
    fontSize: 12,
    scaleX: self.baseTextScale,
    scaleY: self.baseTextScale
);


customText.on('mouse:dblclick', function (e)
   console.log('canvas db clicked');
   console.log(e);
);

我做错了什么?

【问题讨论】:

也许你应该使用addEventListener 就像在this 答案中一样? 我想我可以试试,但我认为这是在 Fabricjs 支持 db click 之前所做的事情。所以 dbclick 应该可以工作:/ 可能我没有好的版本。 也许this 可以帮忙? 很高兴听到 :) 也许你可以为未来的读者回答你自己的问题.. @MoshFeu 你说得对:) 【参考方案1】:
window.fabric.util.addListener(canvas.upperCanvasEl, 'dblclick', function (e, self) 
    var target = canvas.findTarget(e);

目标将包含被点击元素的所有规范。所以只需要考虑类型或任何你需要的条件来切​​换行为。

【讨论】:

【参考方案2】:

查看官方文档/演示。

http://fabricjs.com/events

这里解释说,如果你在你需要使用的画布上监听一个通用的双击事件:

canvas.on('mouse:dblclick', eventHandler)

如果你正在监听对象:

text.on('mousedblclick', eventHandler)

这是旧的命名架构,从未更改以尽可能保持向后兼容性

【讨论】:

以上是关于Fabric.js dbclick 事件子元素的主要内容,如果未能解决你的问题,请参考以下文章

08-JS DOM事件

vue的双击事件(dbclick的使用)

jQuery基础——事件

如何从具有子元组的元组创建列表?

JQuery事件——鼠标事件

jQuery-事件