Jquery动画在ie8中冻结

时间:2011-04-11 11:44:59

标签: jquery jquery-ui internet-explorer-8

我有一些JQueryUI动画加上一些Jquery代码,它们将一些html加入到页面中。 html是基于来自JQuery Ajax调用的数据生成的。

我认为我的动画冻结可能来自Ajax调用,但是下面的问题是我在想的不是:

Why does my spinner GIF stop while jQuery ajax call is running?

我认为我遇到的问题可能源于同一个问题,但上述问题为行为提供了理由,而不是解决方案。

有没有人有解决方案?

2 个答案:

答案 0 :(得分:0)

article可能会对您有所帮助。

  

HTML元素的关键部分如下:

<span id='myHiddenDiv' style='display: none'>
  <img src='' id='myAnimatedImage' align='absmiddle'>
</span>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" OnClientClick="showDiv();" Text="Search" />
  

我们有一个隐藏的跨度(它可能是一个div,如果你想在一个新行上),并且在这个范围内是我们的img标签。接下来,在我们按钮的OnClientClick处理程序中,我们调用“showDiv();”客户端脚本函数看起来像这样:

<script language='javascript'> 
  function showDiv() 
  {
    document.getElementById('myHiddenDiv').style.display =""; 
    setTimeout('document.images["myAnimatedImage"].src="work.gif"', 200); 
  } 
</script>
  

这使用setTimeout方法使DOM在200ms后重置图像的src属性。结果是,当您按下启动长时间运行方法的按钮时,图像将显示并继续动画,直到回发返回并重新加载页面,此时图像消失 - 这正是我们想要的行为。

答案 1 :(得分:0)

所以我认为这个问题有三个主要的“解决方案”;他们是更多的解决方法。

  1. 您可以删除隐藏动画。使用.hide()然后在节目中使用一些动画。
  2. 您可以使用隐藏动画的回调方法然后插入html并显示新div
  3. 您可以使用其他浏览器。我只测试了ie8 / firefox / chrome;但在这种情况下,我会建议使用铬,因为它能够做到这一点非常棒。虽然我通常也会建议使用firefox,但是在这种情况下,这种情况并不比ie8更好。
  4. 当然,我猜有第四种解决方案,就是处理它。