我可以将点击事件绑定到舞台上并双击其中的元素吗?

问题描述 投票:1回答:1

在Konva中,我想在舞台上应用一个单击,但是对舞台中的形状进行双击。想知道最好的办法是什么。

最终,我想创建一个平面图,在那里我可以将表格(矩形)添加到地图中。如果我点击表格,Konva将允许我添加旋转变压器。如果我在桌子外面点击,舞台上的变形金刚就会消失。我希望如果我双击表格,我可以删除那个形状。但是 - 它似乎没有我可以在舞台上点击,并检查在舞台上双击元素。我所知道的代码是我所知道的最简单的例子,它将我在舞台上和舞台上的元素中点击和双击的无知联系起来。

//If you click on the stage, it creates the circle. And if you click on the circle, once created, I'm hoping it will be destroyed. It doesn't seem to like clicks and doubleclicks together in one area.

stage.on('click', function (e) {
    var circle = new Konva.Circle({
        x: 100,
        y: 100,
        fill: 'blue',
        radius: 30,
        draggable: true,
        name: "circle"
    });
    layer.add(circle);
    layer.draw();
});

circle.on('dblclick', function (e) {
    this.destroy();
});

希望我能删除这个圆圈。圆圈不会删除。

javascript events binding konvajs
1个回答
0
投票
stage.on('click', function (e) {
  const clickedOnEmptyArea = e.target === stage;
  if (!clickedOnEmptyArea) {
    return;
  }
  var circle = new Konva.Circle({
    x: stage.getPointerPosition().x,
    y: stage.getPointerPosition().y,
    fill: 'blue',
    radius: 30,
    draggable: true,
    name: "circle"
  });
  layer.add(circle);
  layer.draw();
});

stage.on('dblclick', function (e) {
  const clickedOnEmptyArea = e.target === stage;
  if (clickedOnEmptyArea) {
    return;
  }
  e.target.destroy();
  layer.draw();
});

但是:ぁzxswい

© www.soinside.com 2019 - 2024. All rights reserved.