javascript - JQuery .show() 和等效的 CSS 修改不适用于 IE 8

标签 javascript jquery internet-explorer-8 show-hide

有几个与此相关的帖子,但没有一个真正给出解决方案。

实际发生的情况如下:

function LoadSpinner()
{
$("#divSpinner").css('display','block'); // could have done with .show()
}
function UnloadSpinner()
{
$("#divSpinner").css('display','none'); // could have done with .hide()
}

function OnClickMyButton()
{ 
 LoadSpinner();
 AnAjaxCall(); // it's set to async: false, that means the ajax call must finish before execution continues
 UnloadSpinner();
}

我尝试注释 UnloadSpinner(),它确实显示在 IE 8 中。是否它发生得太快以至于我看不到它。但我对此不太确定,因为即使对于一些较慢的操作它也不会显示。

不过它在 Firefox 上运行良好。

最佳答案

问题是您正在执行同步 ajax 调用吗?我相信这会卡住浏览器执行任何其他操作,包括重新绘制屏幕以显示微调器。尝试使您的 ajax 调用异步并在回调中隐藏微调器。我敢打赌,这行得通。像这样的事情:

function OnClickMyButton()
{ 
 LoadSpinner();
 AnAjaxCall(function() { UnloadSpinner() } );
}

function AnAjaxCall(callback)
{
  //do ajax. On complete, call callback. check the web for examples.
}

我敢打赌,这个问题与 jquery 无关,而是与同步 ajax 调用有关。

要测试我的理论,请尝试以下代码:

function OnClickMyButton()
{ 
 LoadSpinner();
 setTimeout(function() { UnloadSpinner() }, 2000);
}

我敢打赌,旋转器出现 2 秒就很好了。如果没有,请忽略这篇文章..我完全错了。

关于javascript - JQuery .show() 和等效的 CSS 修改不适用于 IE 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976815/

相关文章:

javascript - 如何将 BGRA 数组放入 Canvas 而不重新排序

javascript - 我如何使用循环在 JavaScript 中声明动态变量?

javascript - 需要关闭我的应用程序打开的所有新窗口

apache - 使用 IE8 无法通过 SSL 加载网站

javascript - 问题重新计算 parent 高度

javascript - 无法复制 Javascript/Jquery 插件

javascript - 如何从异步调用返回响应?

javascript - IE8 条件 javascript 不链接

javascript - Galleria - IE8 中的 imagePosition 问题 (galleria.aino.se)

javascript - 淡入模式下的 ScrollTop bootbox 模态