如何在最后一次加密后5秒钟后执行一项功能?

时间:2016-03-10 00:41:22

标签: javascript jquery html

我有一个textarea,我试图为此创建一个自动保存。我想保存这样一个textarea的内容,如果5秒后没有按下键:

function autosaving(){

    // save the value of text area into localstorage
    alert('saved');

}

这是textarea:

<textarea class="mytextarea" rows="4" cols="50"></textarea>

我希望在将最后一个字符插入该textarea后5秒执行该功能。换句话说,如果传递5秒并且textarea中没有任何新值,我想运行该函数。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

使用keyUpsetTimeout

的组合
var timer;
$("textarea").on("keyup", function() {
    clearInterval(timer);
    timer = setTimeout(function() {
        autosaving();
    }, 5 * 1000);
});

答案 1 :(得分:2)

尝试这样的事情:

var to = null;
$(".mytextarea").on("keypress", function(){
   if(to !== null) clearTimeout(to);
   to = setTimeout(function(){
       autosaving();
       to = null;
   }, 5000);
});