【问题标题】:Fabric.js dbclick event child elementFabric.js dbclick 事件子元素
【发布时间】:2023-03-09 07:30:02
【问题描述】:

我在画布中有一个织物元素,我想在该特定元素上添加一个 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 你说得对:)

标签: jquery fabricjs


【解决方案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)
    

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

    【讨论】:

      猜你喜欢
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2012-07-11
      • 2019-11-24
      • 2021-03-21
      • 1970-01-01
      • 2017-09-16
      相关资源
      最近更新 更多