<script type="text/javascript">
var timeout;
function doAjaxFunc(){
alert("called");
$.ajax({
type: "POST",
url: "searchSuggest.php",
data: dataString,
cache: false,
success: function(data){$("#display").html(data).show();}});
}
$(document).ready(function(){
$(".search").keyup(function()
{
var searchbox = $(this).val();
var dataString = 'searchword='+ searchbox;
if(searchbox=='')
{
$("#display").hide();
}
else
{
if(timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout= setTimeout(doAjaxFunc(), 5000);
}
return false;
});
});
</script>
使用这个,我认为javascript应该在键入五秒钟后调用函数doAjaxFunc()
。但它并没有等到那段时间。在doAjaxFunc()执行之前,我该怎么做才能让它等待5秒钟。
答案 0 :(得分:3)
您正在呼叫doAjaxFunc
并将其返回值设置为五秒后要调用的函数。
删除()
:timeout= setTimeout(doAjaxFunc, 5000)
,这一切都会神奇地起作用。
答案 1 :(得分:1)
试试这个:
timeout = setTimeout(function() {
doAjaxFunc();
}, 5000);
或者这个:
timeout = setTimeout(doAjaxFunc, 5000);
答案 2 :(得分:0)
try this......
$(".search").keyup(function () {
var searchbox = $(this).val();
var dataString = 'searchword=' + searchbox;
if (searchbox == '') {
$("#display").hide();
}
else {
doAjaxFunc();
}
return false;
});
function doAjaxFunc(){
alert("called");
$.ajax({
type: "POST",
url: "searchSuggest.php",
data: dataString,
cache: false,
success: function (data) {
$("#display").html(data.d).show();
} ,
beforeSend: function () {
$("img").fadeIn(1200, function ()
{
$("div").append(" | beforeSend finished | ");
});
}
});
};