【问题标题】:JS setTimeout Not Delayed [duplicate]JS setTimeout没有延迟[重复]
【发布时间】:2019-03-19 17:47:17
【问题描述】:

我正在尝试在AJAX 呼叫的前面 中进行延迟。

var delay = 2000;

$("#c_name").on("keyup", function() {
  var entered = $(this).val();
  if (entered.length > 1) { 
    setTimeout(dosearch(entered), delay) 
    }
  });

由于某种原因,我似乎无法让setTimeout 占据主导地位。它立即执行dosearch() 功能。

我怎样才能让它正确延迟?是的 JQuery 3.3.1 已加载到顶部。

【问题讨论】:

  • 因为你调用它并将它返回的内容分配给超时......
  • dosearch(entered) 是一个函数调用。 setTimeout() 被调用之前对其进行评估。
  • 再次阅读所有副本的答案。 stackoverflow.com/a/7137443/1586174
  • setTimeout(() => dosearch(entered), delay)
  • dosearch(entered) 包装在一个函数中:function() { dosearch(entered); }

标签: javascript jquery settimeout


【解决方案1】:

答案:这两种方法都有效:

setTimeout(() => dosearch(entered), delay) 

setTimeout( function() { dosearch(entered) }, delay) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多