我在自动填充输入字段中使用下面的jQuery。
现在,我希望在ajax等待来自服务器的响应时显示一个微调器。
我正在使用search:
来显示加载div。然后open:
隐藏它。最后成功显示结果。
$(document).ready(function(){
$('#search_field').keyup(function(){
var search = $(this).val();
if(search != '')
{
$.ajax({
url: 'search.php',
method: 'POST',
data: {search:search},
search: function()
{
$('#search_loader').fadeIn('fast', 'swing');
},
open: function()
{
$('#search_loader').fadeOut('fast', 'swing');
},
success: function(data)
{
if(data == '') {
$('#autocomplete_result').fadeOut('fast', 'swing');
} else {
$('#autocomplete_result').fadeIn('fast', 'swing');
$('#autocomplete_result').html(data);
}
}
});
}
});
});
但search:
或open:
都不起作用。
新的JS,所以有谁能告诉我我做错了什么?
答案 0 :(得分:1)
检查http://api.jquery.com/jquery.ajax/。没有开放和搜索选项。尝试使用beforeSend和complete,同时将fadeIn fadeOut
设置为“slow”
$(document).ready(function(){
$('#search_field').keyup(function(){
var search = $(this).val();
if(search != '')
{
$.ajax({
url: 'search.php',
method: 'POST',
data: {search:search},
beforeSend : function()
{
$('#search_loader').fadeIn('slow', 'swing');
},
complete : function()
{
$('#search_loader').fadeOut('slow', 'swing');
},
success: function(data)
{
if(data == '') {
$('#autocomplete_result').fadeOut('fast', 'swing');
} else {
$('#autocomplete_result').fadeIn('fast', 'swing');
$('#autocomplete_result').html(data);
}
}
});
}
});
});
答案 1 :(得分:0)
Ajax具有以下语法:
$.ajax({
url: 'your_url',
method: 'get', // or post
data: {
var1 : val1,
var2 : val2
},
before: function(){
},
onComplete: function(){
},
success : function(response){
}
});
没有搜索:定义了function()。如果需要,您可以打电话给他们 之前的()强> 要么 的的onComplete()强>