我正在处理text:changed
事件它的工作正常,但我需要触发一个函数,当用户停止输入而不是每个单词更改时,例如,如果用户输入并停止键入2秒然后触发一个函数。
以下是我在文本更改时触发事件的代码:
canvas.on('text:changed', function(e) {
obj = canvas.getActiveObject();
newtext = obj.text;
languageConverterEntoHn(newtext);
$('#cteditinput').val(newtext);
$('#cardalltexthex').empty();
renderalltextfeomcanvas();
});
答案 0 :(得分:1)
您正在寻找的功能通常称为debounce
,您可以在lodash库中找到它,或者您可以自己编写。
// 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);