Textarea因延迟而改变

时间:2015-08-04 06:14:35

标签: javascript jquery html textarea timedelay

我想用扫描仪扫描QR码。我已经有了扫描仪,当我将焦点放在隐藏的文本区域时,他在扫描QR码时将文本放在textarea中。

我想对特定textarea中输出的数据做些什么。现在我在jQuery中有以下内容:

$("#qr_data").bind("input", function (e) {
    console.log(e);
});

问题是在我的textarea中加载QR数据大约需要2秒钟。所以这个函数被调用了20次....我只想要最后的数据,所以我可以用它做点什么。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

我要做的就是绑定到change事件,并在每次触发时将函数推迟500ms。好像你正在制作一个自动完成的输入字段,而你不想在每次按键时发出ajax请求。

var qr_timeout = null;
$("#qr_data").change(function(){
    if(qr_timeout != null)
        clearTimeout(qr_timeout);

    qr_timeout = setTimeout(function(){
         //Do your magic here 
    }, 500);
});

这样你就不用担心加载需要1,2或10秒

答案 1 :(得分:1)

fid = fopen(filename, 'rt');
dataset = textscan(fid, '%s', 'delimiter', '\n', 'headerlines', 0);
fclose(fid);
result = regexp(dataset{1}, '//([A-Za-z].*)=([0-9\.].*)', 'tokens');
result = result(cellfun(@(x) ~isempty(x), result));