首页 > 解决方案 > FabricJS 删除活动对象的问题

问题描述

我可以从我的画布中删除对象,如下所示:

document.addEventListener("keyup", function(event) {
       if (event.key === "Delete") {
           var currentlySelected = _fabricCanvas.getActiveObject();
           if (currentlySelected) {
               _fabricCanvas.remove(currentlySelected);
           }
       }
    });

问题是; 我按了两次删除。第一次按下它,角选择点消失,然后如果我重新选择对象并再次按下删除,它将被删除。

删除事件触发了一个“选择:清除”事件,所以我对为什么这样做有点困惑。画布上的所有对象都是“矩形”

如果人们可以让我知道要发布哪些位,我可以发布更多代码,因为代码现在变得很长。

标签: javascriptfabricjs

解决方案


您的代码很好,您更大的应用程序中的其他一些问题正在阻止您删除。看这里的snippet,聚焦snippet iframe后,尝试按退格键,对象就会被删除。

document.addEventListener("keyup", function(event) {
       if (event.key === "Backspace") {
           var currentlySelected = _fabricCanvas.getActiveObject();
           if (currentlySelected) {
               _fabricCanvas.remove(currentlySelected);
           }
       }
    });
    
var _fabricCanvas = new fabric.Canvas('c');
var rect = new fabric.Rect({ width: 100, height: 100 })
_fabricCanvas.add(rect);
_fabricCanvas.setActiveObject(rect);
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.3.6/fabric.min.js"></script>
<canvas width=400 height=400 id="c" ></canvas>


推荐阅读