微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在jquery中使用Ajax时,beforeSend在Internet Explorer中不起作用

如何解决在jquery中使用Ajax时,beforeSend在Internet Explorer中不起作用

| 我试图在生成内容之前在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>
    

解决方法

        尝试在每个变量之前添加\“ var \”:
var bodyContent = j.ajax({....
    ,        好的,我们等着瞧。 @ArtoAle的回复很恰当:不要使用全局变量。 真正要注意的是,您正在对ajax进行同步调用(
async
属性是
false
)。这将阻止UI线程在JavaScript上运行,直到返回数据后恢复它。也许在IE中,UI线程被阻止时不会呈现对DOM的更改,但是在Firefox中会显示吗? Dunno,但我当然可以使该呼叫成为异步呼叫。 如果完成,,4ѭ将按照您使用IE8和jQuery 1.6.1的描述为我工作。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。