Javascript 文本区域输入更改后的设置间隔

Javascript 文本区域输入更改后的设置间隔,javascript,jquery,Javascript,Jquery,我想在输入更改后和2秒钟后保存textareas信息 我使用以下代码进行了尝试: jQuery('#textarea').on('input propertychange paste', function() { setInterval(function() { //save }, 2000); }); 但这并不是很有效,因为似乎存在某种我创建的无限循环 有什么想法吗?谢谢首先,您需要使用setTimeout而不是setInterval。如果textarea中

我想在输入更改后和2秒钟后保存textareas信息

我使用以下代码进行了尝试:

jQuery('#textarea').on('input propertychange paste', function() {
    setInterval(function() {
        //save
     }, 2000);
});
但这并不是很有效,因为似乎存在某种我创建的无限循环


有什么想法吗?谢谢

首先,您需要使用
setTimeout
而不是
setInterval
。如果
textarea
中有新的更改,则需要清除上一个计时器。例如,类似这样的事情:

jQuery('#textarea').on('input propertychange paste', function() {

    // Clear previous timeout
    if ($(this).data('timeout')) {
        clearTimeout($(this).data('timeout'));
    }

    // Set up new one
    $(this).data('timeout', setTimeout(function() {
        //save
     }, 2000));
});

…并可能在
设置超时之前获取
或本地值,尽管我想可以再次使用
$(“#textarea”)
。谢谢,这很好地工作了。在您的代码中,我认为您的意思是将
setTimeout
而不是
setInterval
。。。