textarea输入更改后的setInterval

时间:2015-03-15 16:59:46

标签: javascript jquery

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

我尝试使用此代码:

jQuery('#textarea').on('input propertychange paste', function() {
    setInterval(function() {
        //save
     }, 2000);
});

但它不是很有效,因为我似乎创造了某种无限循环。

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:3)

首先,您需要使用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));
});