我有一个搜索表单,显示指定div中的实时结果(请查看Filter results with Jquery)
我已经修改了一下脚本,现在当用户选中其中一个复选框时,结果div会自动刷新。 load函数由onChange事件处理。
有没有办法让ajax在指定时间后加载结果脚本?
例如,如果我选择一个复选框,则脚本应在加载脚本之前等待2秒。通过这种方式,用户可以检查例如2个或3个复选框,当它停止进行选择时,ajax将加载脚本。
- 编辑 -
脚本的ajax调用不是通过函数完成的,这是代码:
$(document).ready(function()
{
$('#category_filter').click(function()
{
var catArray = new Array();
var j = 0;
for(var i = 0; i < <?php echo $categories_count;?>; i++)
{
if(document.category_filter.filter_id[i].checked == 1)
{
catArray[j] = document.category_filter.filter_id[i].value;
j++;
}
}
if(catArray[0])
$.ajax(
{
type: "POST",
url: "index.php?action=ticket-search",
data: ({ filter: 'category',filter_id : catArray.toString() }),
success: function(msg)
{
$('#t_content').html(msg)
.hide()
.fadeIn(700, function() {});
}
});
});
});
});
答案 0 :(得分:1)
尝试使用setTimeout。
实施例
setTimeout("alert('hello')",2000);
答案 1 :(得分:1)
使用setTimout
功能。像这样:
var timer = setTimeout(yourFunction(), 2000);
但是,确保在选中新按钮时附加事件以清除该超时,否则您最终会多次触发Ajax。
if(timer) { clearTimout(timer); }
var timer = setTimeout(yourFunction(), 2000);
答案 2 :(得分:0)
您可以使用setTimeout()调用等待几秒钟。
var t = setTimeout(myAjaxFunction, 2000); //wait two seconds
如果允许用户单击多个复选框,则可能需要检查是否已设置超时。这是为了避免每个等待2秒的多个AJAX调用。然后逻辑是: