我很难在IE中运行动画GIF。适用于所有其他浏览器,但在IE中它只是冻结。我研究了这个,看起来像使用setTimeout的延迟可能会起作用。我不太清楚如何将它添加到以下函数中:
<script type="text/javascript">
$(function(){
$('#photo_form').on("submit", function () {
$('#loading').show();
});
});
</script>
gif位于一个名为“loading”的div中,它被隐藏起来。我会将超时添加到按钮的onClick或函数本身吗?
为什么IE会让事情变得如此困难!?
解决这个问题的任何帮助都会非常有帮助。
答案 0 :(得分:2)
你的意思是这样的吗?
$(function() {
$('#photo_form').on("submit", function () {
setTimeout(function () {
$('#loading').show();
}, 100);
});
});
答案 1 :(得分:1)
试试这个未经测试的psedo-code:
var startTime;
var thread;
$(function(){
$('#photo_form').on("submit", function () {
$('#loading').show();
startTime = time();
thread = setInterval("showLoadingGif", 1);
});
function showLoadingGif() {
var timeToWait = 5; //change interval as needed
if(timeToWait + startTime <= currentTime) {
//show the gif
clearInterval(thread);
}
}
自从我使用javascript以来已经很长时间了,所以这几乎肯定需要调整;但原理是一样的:继续调用该函数,让该函数决定何时停止被调用。
setTimeout()会在您等待时导致页面冻结。 setInterval将异步运行您的代码。