4

我正在努力让动画 gif 在 IE 中运行。适用于所有其他浏览器,但在 IE 中它只是冻结。我对此进行了研究,看起来使用 setTimeout 的延迟可能会起作用。不太确定如何将其添加到以下函数中:

<script type="text/javascript">

    $(function(){
        $('#photo_form').on("submit", function () {
        $('#loading').show();

    });

    });


</script>

gif 位于一个名为“正在加载”的 div 中,该 div 是隐藏的。我会将超时添加到按钮的 onClick 还是函数本身?

为什么IE让事情变得如此困难!?

解决此问题的任何帮助都会非常有帮助。

4

2 回答 2

2

你的意思是这样的?

$(function() {

    $('#photo_form').on("submit", function () {

        setTimeout(function () {

              $('#loading').show();

        }, 100);

    });
});
于 2012-12-27T21:02:45.450 回答
1

试试这个简单的、未经测试的伪代码:

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 将异步运行您的代码。

于 2012-12-27T21:08:02.240 回答