如何解决在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 举报,一经查实,本站将立刻删除。