javascript - 用 jquery 搜索

标签 javascript jquery

我通过 js 搜索我的网站。

他们的代码可能是这样的: 有一个表单,当 keyup 事件发生时,它会将 post 发送到一个文件,并将该文件中的数据检索到疯狂的 div 的 html 中。

但是你自己有麻烦了。我发现“a”的示例大约有 3000 个结果。例如,花点时间发送邮件。所以我按“c”现在将帖子发送到文件“ac”并且有 100 个这样的结果需要 0.3 秒。 例如,当我按字母“a”到“c”0.2 秒时,它应该在 0.5 秒时显示结果“ac”。然后0.5秒后是“a”的结果。 ~> 找“ac”变成找“a” 那么,当您按“c”然后它停止发送值为“a”的帖子时,您现在如何发送值为“ac”的帖子。

<form method="post" onsubmit="return checkForm(this.form)">
<div class="search padding">
    <input type="text" id="searchbox" name="manga_name" class="input" value="Tìm truyện muốn đọc ..." onfocus="if (value =='Tìm truyện muốn đọc ...'){value =''}" onblur="if (value ==''){value='Tìm truyện muốn đọc ...'}" />
    <input type="submit" value=" " id="searchsubmit" class="go"/>
</div>
    </form>

<div id="result"></div>

和脚本:

<script>
$('#searchbox').keyup(function() {
 search();
});

function search() {
var keyword = $('#searchbox').val();
if (keyword != "") {
$('#result').html(loadingText);
$('#result').css('display', 'block');
$.post('/search/',{"keyword":keyword}, function(data){
if (data != "")
{
$('#result').html(data);
}
else
{
$('#result').html('');
$('#result').css('display', 'none');
}
});
}
else {
$('#result').html('');
$('#result').css('display', 'none');
}
}
</script>

最佳答案

// use to delay the callback execution
// so your search will be executed only you stop typing after 0.5(500 ms for example) second
var delay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout(timer);
    timer = setTimeout(function() {
      callback();
    }, ms);
  }
}());

$('#searchbox').keyup(delay(search, 500));

关于javascript - 用 jquery 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845828/

相关文章:

php - Foursquare - 使用端点 'venues/explore' 比 'venues/search' 更少的 field 响应结果

jquery - 如何选择一系列列表项元素,将它们分成两组并将每个组包装在新的周围 DIV 中

javascript - jQuery 只允许数字、字母和连字符

javascript - 菜单在页面加载时打开

javascript - 一次在多个跨度中添加不同的文本?

jquery json 对象

javascript - Chrome - "disable cache"

javascript - HTML类和CSS样式表之间的不理解

javascript - 使用 .each() jquery 进行多个选择框值测试

JavaScript 事件监听器