clearTimeout无法在javascript自动完成脚本中使用

Tra*_*vis 6 javascript jquery settimeout

我使用以下代码作为自动完成脚本的一部分,以避免每次按键敲击服务器:

var that = this;

textInput.bind("keyup", function() {

    clearTimeout(that.timer);

    that.timer = setTimeout (that.doStuff(), 2000);

});
Run Code Online (Sandbox Code Playgroud)

不幸的是,这并没有清除旧的计时器.它们仍然都在执行.

有谁知道我错过了什么?

谢谢!

int*_*jay 10

您可能想要使用:

that.timer = setTimeout (that.doStuff, 2000);
Run Code Online (Sandbox Code Playgroud)

代替:

that.timer = setTimeout (that.doStuff(), 2000);
Run Code Online (Sandbox Code Playgroud)

否则,将立即调用doStuff.