Javascript JCanvas:擦除画布不会';t删除可拖动的元素

Javascript JCanvas:擦除画布不会';t删除可拖动的元素,javascript,jquery,html5-canvas,jcanvas,Javascript,Jquery,Html5 Canvas,Jcanvas,我想通过允许用户绘制各种形状来增强我用JS构建的绘图应用程序。我希望通过允许用户拖动这些形状来方便用户。所以我使用了jCanvas,因为它提供了一种简单的拖动形状的方法: $("#can").drawRect({ draggable: true, fillStyle: "#000", width: 100, height: 100, x: 100, y: 100, }); 问题是,我需要一个函数来再次擦除它。所以我制作了这个

我想通过允许用户绘制各种形状来增强我用JS构建的绘图应用程序。我希望通过允许用户拖动这些形状来方便用户。所以我使用了jCanvas,因为它提供了一种简单的拖动形状的方法:

$("#can").drawRect({
   draggable: true,
   fillStyle: "#000",
   width: 100, height: 100,
   x: 100,
   y: 100,
});
问题是,我需要一个函数来再次擦除它。所以我制作了这个脚本:

<script>
   $("#can").drawRect({
      draggable: true,
      fillStyle: "#000",
      width: 100, height: 100,
      x: 100,
      y: 100,
   });

   $("#erase").click(function () {
      $("#can").clearCanvas();
   });
</script>
<canvas id="can" width="200px" height="150px"></canvas>
<button id="erase">Clear Canvas</button>

$(“#can”).drawRect({
真的,
填充样式:“000”,
宽度:100,高度:100,
x:100,
y:100,
});
$(“#擦除”)。单击(函数(){
$(“#can”).clearCanvas();
});
透明帆布
但这不起作用。当我擦除时,它首先会清除所有内容,但当我尝试在画布上绘制时,形状会再次出现

我检查了jCanvas的代码,它似乎只是在拖动时绘制了大量的矩形,并将它们清除以创建被拖动形状的幻觉。但当这种情况发生时,清除的画布会自行后退,并且形状再次可见

有没有一种方法可以永远清除这个形状?或者我必须重新加载页面才能工作


提前感谢

您没有明确使用图层,但在设置“拖动”属性时,画布将创建一个图层:

可以使用“可拖动”属性使图层可拖动

因此,clearCanvas不适合:

如果您使用的是jCanvas层API,则不应使用此方法,因为在许多情况下,API会为您处理重绘,因此如果您尝试清除画布,也不应使用此方法。当jCanvas认为有必要时,最终将重新绘制图层

您需要删除该层:

$('canvas').removeLayer(0);

$('canvas').removeLayers();
在文档中查看更多选项:


如果这对你有帮助,请检查我的答案是否正确

这都是你的密码?你在使用层吗?是的,这是我的全部代码。我不使用图层,因为我无法真正理解它们是如何工作的。