我将以下代码用作自动完成脚本的一部分,以避免每次击键都会重击服务器:

var that = this;

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

    clearTimeout(that.timer);

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

});

不幸的是,这并不能清除旧的计时器。他们仍然全部执行。

有人知道我在想什么吗?

谢谢!

最佳答案

您可能要使用:

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

代替:
that.timer = setTimeout (that.doStuff(), 2000);

否则,doStuff将立即被调用。

关于javascript - clearTimeout在javascript自动完成脚本中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2618865/

10-11 23:31