Run javascript function when user finishes typing instead of on key up?

前端 未结 29 2488
我寻月下人不归
我寻月下人不归 2020-11-22 04:03

I want to trigger an ajax request when the user has finished typing in a text box. I don\'t want it to run the function on every time the user types a letter because that wo

29条回答
  •  北荒
    北荒 (楼主)
    2020-11-22 04:39

    Declare the following delay function:

    var delay = (function () {
        var timer = 0;
        return function (callback, ms) {
            clearTimeout(timer);
            timer = setTimeout(callback, ms);
        };
    })()
    

    and then use it:

    let $filter = $('#item-filter');
    $filter.on('keydown', function () {
        delay(function () {            
            console.log('this will hit, once user has not typed for 1 second');            
        }, 1000);
    });    
    

提交回复
热议问题