Fabric.js文本:已更改事件

时间:2017-10-14 08:02:23

标签: javascript jquery fabricjs

我正在处理text:changed事件它的工作正常,但我需要触发一个函数,当用户停止输入而不是每个单词更改时,例如,如果用户输入并停止键入2秒然后触发一个函数。

以下是我在文本更改时触发事件的代码:

canvas.on('text:changed', function(e) {
    obj = canvas.getActiveObject();
    newtext = obj.text;
    languageConverterEntoHn(newtext);

    $('#cteditinput').val(newtext);
    $('#cardalltexthex').empty();
    renderalltextfeomcanvas();
});

1 个答案:

答案 0 :(得分:1)

您正在寻找的功能通常称为debounce,您可以在lodash库中找到它,或者您可以自己编写。

https://lodash.com/

// import lodash

var myFunction = function(e) {
   obj = canvas.getActiveObject();
   newtext = obj.text;
   languageConverterEntoHn(newtext);

   $('#cteditinput').val(newtext);
   $('#cardalltexthex').empty();
   renderalltextfeomcanvas();
}
var myFunctionDebounced = lodash.debounce(myFunction, 2000); // 2 seconds debounce
canvas.on('text:changed', myFunctionDebounced);