2

我试图在用户等待调用服务器时显示加载动画。为此,我尝试使用 JQuery 显示一个 div,但它仅适用于 Firefox(不适用于 IE 或 Chrome)。

现在,BigSlowFuncCall 只有 ac#System.Threading.Thread.Sleep(10000);

JAVASCRIPT

function showloading() {
  $('#content').hide();
  $('#siteLoader').show();
}

function hideloading() {
  $('#content').show();
  $('#siteLoader').hide();
}

function CheckFields() {
   showloading();

   var jsHandler = new JsonHandler();
   jsHandler.BigSlowFuncCall();

   hideloading();
}

HTML

<div id="wrapper">
    <div id="siteLoader" style="display:none;" > 
        <div id='siteDetailLoader'> 
            <img src='img/loading.gif' border='0' alt='cargando'> 
            Por favor, espera<br /> <br /> 
        </div>
    </div> 

    <div id="content">
        <form>
          <p>
              /* Stuff */
          </p>
          <p class="submit"><input type="button" id="btn" onclick="CheckFields()" class="button-link" value="Descargar"/></p>    
        </form>
</div><!-- #content-->

</div><!-- #wrapper -->

这在 Firefox 上按预期工作(隐藏内容,显示加载动画,10 秒后隐藏加载动画),但在 IE 中,它仅显示我是否退出该hideloading()函数并且仅在退出 CheckFields 函数后显示。

这么简单的代码怎么能在 Firefox 上正常工作,但在 IE 上却不行?

编辑:我看到如果我在它alert()之后放置一个showloading()完美的作品。所以,我搜索并发现了这个:在 javascript dom 操作后强制在 Internet Explorer 中刷新 DOM。我试过这个https://stackoverflow.com/a/4271996/1824011但它也没有用。

4

2 回答 2

0

也许它会帮助你;

function checkFileds()
{
    var overlay = jQuery('<div id="overlay" align="center"><img src="images/preloader_bajaj.gif" width="125" height="125"  style="margin-top:300px" /> </div>');
    overlay.appendTo(document.body)

.......your code.......

}
于 2013-01-31T12:15:59.390 回答
0

你错过了什么吗?隐藏函数中的 $ 符号丢失。IE 对这种类型的错误非常敏感。更正代码并尝试一下。

于 2013-01-31T12:16:17.643 回答