javascript - Ajax - 但仅当用户停止输入时

标签 javascript jquery arrays timer

我有一个表格列表,每行都有一个“注释”字段。我希望能够使用 ajax 更新它们并在更新后显示一条小消息,但我正在努力找出正确的代码。

我的计划是捕获一次按键操作,并将笔记 ID 传递给计时器,每次用户按下一个键时计时器都会重置,因此它只会在用户停止输入 1 秒后运行。问题是,如果页面上有多个注释,我需要将其传递到一个数组中并在每个注释上重置计时器,如果这可能的话?

这是我的代码:

    var waitTime = 1000;
    var click = false;
    var timers = new Array();

    $('.notes').keyup(function(){

        var timerVariable = $(this).attr('id').split("-");
        timerVariable = timerVariable[0];
        timerVariable = timerVariable.replace('note', '');

        timers.push(timerVariable);
        timers[timerVariable] = timerVariable;

        if(click==false){
            var id = $(this).attr('id');
            if(click==false){
                click= true;
                timerVariable = setTimeout(function(){doneTyping(id)}, waitTime);
            }
        }
    });

    $('.notes').keydown(function(){
        for (var timer in timers) {
            clearTimeout(timer);
        }
        click = false;
    });

    function doneTyping (id) {
        var staffNo = id.split("-");
        staffNo = staffNo[0];
        staffNo = staffNo.replace('note', '');

        var data = 'data='+id+'&note='+$('#'+id).val();
        $.ajax({
            url: "update-notes.php", 
            type: "GET",       
            data: data,    
            cache: false,
            success: function (html) {
                jGrowlTheme('mono', 'Updated ' + staffNo, 'Thank you, the note has been updated.', 'tick.png');
            }
        });
    }

我想知道问题可能出在我调用 for 循环的方式上,还是其他什么?非常欢迎任何建议,谢谢!

最佳答案

我是这样做的:

var t;

$(document).ready(function() {

    $('#search_string').keyup(function() {

        clearTimeout (t);

        t = setTimeout('start_ajax()', 3000);

    });

});

start_ajax() {

    // Do AJAX.

}

关于javascript - Ajax - 但仅当用户停止输入时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939175/

相关文章:

javascript - 对 jQuery 中的 promise 感到困惑

javascript - Ajax - 函数收到返回值并跳转到错误

arrays - 在多维数组上使用 ubound 的 VBA

php - foreach 循环破坏了我的数组?

javascript - 减少 Prop 数量

javascript - for 循环、console.log、返回、未定义和作用域

javascript - 在数组中的对象中添加/删除类

jquery - 文本区域中的字数始终返回 11

jquery - 将 ajax 与现有表单结合使用

Javascript - 用空值初始化数组