jQuery的fadeIn()和fadeOut()不能与IE 8一起使用吗?

我有一个页面fadeIn和fadeOut内联元素和jQuery不起作用。 然后当我将开发人员工具更改为使用IE 7的浏览器模式时,则会显示fadeIn()和fadeOut()效果。

IE有一个被称为“hasLayout”的实现细节,遗憾的是,它经常泄漏过API抽象,必须正面处理…这就是你今天面临的战斗:内联元素通常没有“布局”和因此不能使用“filter”…这是jQuery用来模拟IE上的不透明度。

这在IE8中并不新鲜,通常你根本就不必担心它,因为它正是这种特定于浏览器的疯狂,jQuery旨在用来解决它…确实,这就是为什么我不打扰它详细了解“hasLayout”和“filter”实际意味着什么 – 你可能不关心,也不应该(但是,如果你有兴趣,谷歌吧……)

问题是,jQuery使用的hack强制布局(所以filter工作(因此它可以模拟不透明度(因为IE不实现它)))…它在IE8上不起作用。 这不是很好吗,嗯? 他们修复了错误, display: inline元素表现为display: inline-block元素,但忽略了实现人们使用他们的bug破解支持的function……

好吧,没什么’你能做到的。 给团队IE写一个讨厌的电子邮件可能会让你觉得好一点,但是他们很难在IE9上工作,这应该(敲木头……)解决大多数这些问题。 与此同时,你只需要手动完成IE 曾经做过的事情(有点,有点,而且肯定是错误的):强制内联元素进入内联块模式:

 $("myInlineElement").css({display: 'inline-block'}).faceOut(); 

…或者更好的是, 将它放在仅IE8的样式表中 ……