beforeSend在jquery中使用ajax时在internet explorer中不工作

beforeSend在jquery中使用ajax时在internet explorer中不工作,jquery,Jquery,在生成内容之前,我试图在div上添加一个正在加载的gif图像。它在firefox中运行良好,但在internet explorer中不起作用。下面是我的代码 谢谢你 <script type="text/javascript"> j(document).ready(function() { j('#sliderform').submit(function() { //j('#dash1').html('loading....'); bodyContent

在生成内容之前,我试图在div上添加一个正在加载的gif图像。它在firefox中运行良好,但在internet explorer中不起作用。下面是我的代码

谢谢你

<script type="text/javascript">
j(document).ready(function() {

    j('#sliderform').submit(function() {
    //j('#dash1').html('loading....');

    bodyContent = j.ajax({

        beforeSend: function(){
            $("#dash1").append('abhinab...');
            //alert("loading,..");
            j('#dash').html('loading....');
            j('#dash').html('<img src="../resources/images/loading.gif" >');
    //document.getElementById('loading').innerHTML = '<img src="../resources/images/loading.gif" >';
        //  document.getElementById('dash').innerHTML = '<img src="../resources/images/loading.gif" >';         
           },

          url: "dashboardreload.php",
          global: true,
          type: "POST",
          data: ({min : j("#min").val(),max : j("#max").val()}),
          dataType: "html",
          async:false,
          success: function(msg){
             // drawChart();

          }
       }
    ).responseText;
    //j('#dialog-form').html('');
    //j( "#dialog-form" ).dialog( "close" );
    //document.getElementById('dash').innerHTML = '<img src="../resources/images/loading.gif" >';
    j('#dash').html(bodyContent);

    drawChart();

    //confirm(bodyContent);
    return false;
    });
});
</script>

j(文档).ready(函数(){
j(“#slideperform”).submit(函数(){
//j('#dash1').html('loading…');
bodyContent=j.ajax({
beforeSend:function(){
$(“#dash1”).append('abhinab…');
//警报(“装载,…”;
j('#dash').html('loading…');
j('#dash').html('');
//document.getElementById('loading')。innerHTML='';
//document.getElementById('dash')。innerHTML='';
},
url:“dashboardreload.php”,
全球:没错,
类型:“POST”,
数据:({min:j(“#min”).val(),max:j(“#max”).val()}),
数据类型:“html”,
async:false,
成功:功能(msg){
//图纸();
}
}
).responseText;
//j(“#对话框形式”).html(“”);
//j(“对话框形式”)。对话框(“关闭”);
//document.getElementById('dash')。innerHTML='';
j('#dash').html(bodyContent);
图纸();
//确认(正文内容);
返回false;
});
});
尝试在每个变量之前添加“var”:

var bodyContent = j.ajax({....

好吧,让我想想@ArtoAle的回答很好:不要使用全局变量

真正需要注意的是,您正在对ajax进行同步调用(
async
属性是
false
)。这将阻止JavaScript在其上运行的UI线程,直到返回数据后恢复。也许在IE中,当UI线程被阻塞时,对DOM的更改不会呈现,但在Firefox中会呈现吗?不知道,但我肯定会让这个调用成为异步调用


如果做到了这一点,
beforeSend
在这里以您在IE8和jQuery 1.6.1中描述的方式为我工作。

如果您使用的是jQuery 1.4,那么我可能会感兴趣。