我对 AJAX 作为 JQuery 函数中的主要操作有疑问。我希望这段代码有点线性,异步似乎没有效果。我想要做的是显示一个“加载器”,然后在脚本完成后隐藏所说的“加载器”。我有很多其他实例,但没有 AJAX 调用。相反,我使用了 $.post,但对于这个特定的实例,$.ajax 更好地满足了我的需求。
期望的结果:
我想在调用“select_add_user”.change 时显示“加载器”。我希望加载程序保持原样,直到脚本(包括 ajax)完成。
实际结果:
ajax 首先加载甚至不显示加载程序,然后在“#select_sub_group”.append 加载程序显示一毫秒,而脚本附加我的 HTML。
这是我的脚本:
<script type="text/javascript">
$("#select_user_add").change(function(){
$("#loader:hidden").show("fast");
$('#select_sub_group').html('');
var appendD = "";
txt=$("#select_user_add").val();
$.ajax({
async: false, // For async, so it finishes running
url: "get_ug.php",
data: {
id: txt
},
type: "POST",
dataType: "json",
success: function(data){
$.each(data, function() {
appendD = appendD + '<option id="usg' + this.id + '" value="' + this.id + '">' + this.label + '</option>';
$('#lgroup_' + this.id).css('background-color', '#CCFFCC');
});
}
});
$('#select_sub_group').append(appendD);
$("#loader").hide("fast");
});
</script>
在这个问题上绞尽脑汁..要么真的很简单,要么真的很难..哈哈