2017-10-14 284 views
0

我正在与text:changed事件其工作正常,但我需要触发一个函数时,用户停止键入不是每个单词更改例如,如果用户键入并停止键入2秒,然后触发一个函数。Fabric.js文本︰已更改的事件

下面是我的代码在文本改变火灾事件:

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

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

回答

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); 
+0

感谢回复我想你的解决方案。但它不工作,因为这个错误“jquery.min.js:2未捕获的ReferenceError:lodash没有定义”我添加lodash.min.js ...但我仍然得到这个错误。 –

+0

您必须在导入织物时在项目中导入lodash。 – AndreaBogazzi