用户停止输入后运行功能

Mat*_*mes 14 javascript jquery events timer

我有一个输入字段,用户可以在其中输入长值.然后将该值用作复杂耗时功能中的输入值.

我的问题是:如何在用户完成打字后大约1秒钟开始执行此功能?(我不希望在每次按键后都运行它,因为它确实使页面变慢).因此,如果他的下一次击键是距离最后一次击键的1s限制,那么等待额外的秒数.

你有什么建议吗?

附加说明:我还需要将一些参数传递给此函数

Joh*_*hnP 24

这是一个草稿:http://jsfiddle.net/jomanlk/msmJp/

用途setTimeoutclearTimeout

var timer = null;
    $('#text').keydown(function(){
           clearTimeout(timer); 
           timer = setTimeout(doStuff, 1000)
    });
    
    function doStuff() {
        alert('do stuff');
    }
Run Code Online (Sandbox Code Playgroud)

  • @matej nope,不是必需的.您正在传递函数参考.这是一个使用外部范围的参数的例子:http://jsfiddle.net/jomanlk/msmJp/1/ (3认同)
  • Keyup而不是keydown会更有意义,因为我们正在寻找用户何时停止输入. (2认同)