Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript fabric.js get";编辑";IText对象的状态_Javascript_Fabricjs - Fatal编程技术网

Javascript fabric.js get";编辑";IText对象的状态

Javascript fabric.js get";编辑";IText对象的状态,javascript,fabricjs,Javascript,Fabricjs,在fabric.js中,我想在画布上添加一些关键交互。如果选择了IText对象,我希望在按下“删除”键时将其删除。我通过以下方式实现了这一目标: $('html').keyup(function(e){ if (e.keyCode == 46) { obj = canvas.getActiveObject(); canvas.remove(obj); } }); 现在的问题是,当我在编辑ITEXT并命中DEL键时,对象显然也被删除了。 我想通过这样的方式来防止这种情况:

在fabric.js中,我想在画布上添加一些关键交互。如果选择了IText对象,我希望在按下“删除”键时将其删除。我通过以下方式实现了这一目标:

$('html').keyup(function(e){
  if (e.keyCode == 46) {
    obj = canvas.getActiveObject();
    canvas.remove(obj);
  }
});
<>现在的问题是,当我在编辑ITEXT并命中DEL键时,对象显然也被删除了。 我想通过这样的方式来防止这种情况:

$('html').keyup(function(e){

  canvas.observe('text:editing:entered', editing = true);

  console.log(editing);

  if (editing == false) {
    if (e.keyCode == 46) {
      removeObject();
    }
  };

});
document.onkeyup = function (e) {
    if (e.keyCode == 46) {
        obj = canvas.getActiveObject();
        if (!obj.isEditing) {
            canvas.remove(obj);
        }
    }
};

=如果我不在编辑ITEXT/P>中间,只删除对象 我在此处发现此火灾事件“编辑:输入”: 因此,我试图用上面的代码捕捉到这一点。但是,当我选择文本并且没有真正开始编辑它时,似乎已经触发了此事件


有没有办法解决这个问题并检查我是否只是在编辑IText?

IText对象有一个名为
isEditing
的属性,可以用来检查对象中的文本是否正在编辑

要实现您所说的,您所要做的就是在从画布中移除对象之前检查此属性。代码如下所示:

$('html').keyup(function(e){

  canvas.observe('text:editing:entered', editing = true);

  console.log(editing);

  if (editing == false) {
    if (e.keyCode == 46) {
      removeObject();
    }
  };

});
document.onkeyup = function (e) {
    if (e.keyCode == 46) {
        obj = canvas.getActiveObject();
        if (!obj.isEditing) {
            canvas.remove(obj);
        }
    }
};

这是提琴:并链接到。

很抱歉回复太晚,有一段时间没有检查此线程。它工作得很好!谢谢关于织物的新知识。