【发布时间】: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