问题描述
|
我试图在生成内容之前在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的描述为我工作。