【发布时间】:2013-06-02 02:21:42
【问题描述】:
我在搜索栏输入文本框中放置了以下 jQuery 代码:
$(document).ready(function(){
$("#q").keyup(function(event){
event.preventDefault();
$.post("newsearch.php",{q:$("#q").val()}, function(data){
$("#inboxHolder").html(data);
});
});
});
它有点小故障。结果填充正确,但例如在某些情况下,我必须在键入查询后执行空格才能填充结果。
任何反馈都将不胜感激。
【问题讨论】:
-
不是你要问的,但你真的想要在 every keyup 事件上发布一个帖子吗?对于任何半熟练的打字员,每秒发五个帖子。稍微延迟构建更常见......
-
如何使用这个添加延迟:api.jquery.com/delay
-
不,jQuery 的
.delay()是关于延迟动画队列中的事情。您可以使用setTimeout(),也许是this answer 之类的东西(根据需要调整实际时间 - 我认为该链接中的 3000 毫秒有点长,但 800 毫秒之类的就可以了)。这种技术在发布前等待 x 毫秒,直到最后一次按键之后;在 x 毫秒内多次按键会在最后一个帖子之后生成一个帖子。 -
你能帮我实现吗?这是我得到的,但它不起作用:pastebin.com/ACCZNZHC
-
关于延迟,这里有一个版本应该可以工作:jsfiddle.net/ZH4Y7(你在错误的地方声明了
var filterTimeout,在错误的地方声明了event.preventDefault()。我知道我最初的例子链接到在clearTimeout()周围有一个if,但它不是必需的。)
标签: jquery events jquery-events keyup onkeyup