gpt4 book ai didi

javascript - 如何让我的实时 jQuery 搜索在执行搜索之前稍等一下?

转载 作者:行者123 更新时间:2023-12-03 21:46:47 26 4
gpt4 key购买 nike

我有一个搜索输入,当我键入时,它将数据从输入发送到 php 文件。 php 文件对我的数据库进行搜索并显示搜索选项列表。你知道,ajax 风格的实时搜索。

我的问题是,如果您输入的速度非常快,它可能只会搜索前 1 个或 2 个字母,即使已经输入了另外 10 个字母。这会导致一些问题。

我的 jQuery 看起来有点像这样:

$(document).ready(function(){
$('#searchMe').keyup(function(){
lookup(this.value);
});
});

function lookup(searchinput) {

if(searchinput.length == 0) {
// Hide the suggestion box.
$("#suggestions").hide();
} else {

$('#loading').fadeIn();

$.post("/RPCsearch.php", {queryString: ""+searchinput+""}, function(data){
if(data.length > 0) {
$("#suggestions").html(data).show();
$('#loading').fadeOut();
}
});
}
} // lookup

所以我只是好奇,如何才能让我的脚本等到我完成输入后再运行该函数?我的逻辑是这样的:如果 200 微秒内没有按下某个键,则运行该函数,否则稍等一下。

这是如何完成的?

最佳答案

简单,使用setTimeout 。当然,您只想同时运行一个计时器,因此使用 clearTimeout 很重要在函数的开头...

$(function() {
var timer;
$("#searchMe").keyup(function() {
clearTimeout(timer);
var ms = 200; // milliseconds
var val = this.value;
timer = setTimeout(function() {
lookup(val);
}, ms);
});
});

关于javascript - 如何让我的实时 jQuery 搜索在执行搜索之前稍等一下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com