在 IE7 中使用 jquery slideToggle 时内容消失

Posted

技术标签:

【中文标题】在 IE7 中使用 jquery slideToggle 时内容消失【英文标题】:content disappearing when using jquery slideToggle in IE7 【发布时间】:2010-07-27 21:31:47 【问题描述】:

我已经看到这个问题被问了好几次,但没有看到任何答案。

我有一个 ul,我正在使用带有 jquery 的 slideToggle() 来展开和折叠。 代码很简单:

$('#leftMenu li a.moreLess').click(function() 
    $(this).next().slideToggle('normal');   
);

标记为:

<a class="moreLess">Click here to see more</a>
<ul>
  <li>something</li>
  <li>something else</li>
  ...
</ul>

我有一个带有 .moreLess 类的按钮,当单击它时,它下面的列表应该展开或折叠。由于某种原因,在 IE 7 中,一旦列表完全扩展,所有内容都会消失。当它折叠时,内容会再次出现,直到列表完全关闭。

我不确定这是否与 CSS 相关,但我希望以前有人可能遇到过这种情况。 提前感谢您的帮助!

【问题讨论】:

jQuery slideDown in IE9 - content disappears after animation finishes 的可能重复项 【参考方案1】:

放置一个 zoom:1 属性。它适用于位置:相对。

【讨论】:

为我工作!有时 IE 如此糟糕实际上是一件好事,因为那里有大量关于如何解决它的文档。比脾气暴躁好得多【参考方案2】:

仅供参考,问题在于正在切换的 UL 内的元素上的 CSS 定位。一旦我删除了这些元素上的任何相对和/或绝对定位,问题就不再发生了。

【讨论】:

非常感谢您回来回答您自己的问题,遇到了完全相同的问题,这为我解决了问题。 当你有 postition:relative|absolute 被切换的东西(不仅仅是内容)时,这似乎也是一个问题。就我而言,它是一个 div。 Phenom 的修复(设置 zoom:1 属性)解决了我的问题。【参考方案3】:

overflow: hidden; 对于您拥有内容的 div,这会变得一团糟。对我有用,但它仍然是和 IE 错误...

【讨论】:

【参考方案4】:

在我的情况下,使用 slideToggle 加载的内容被“向下移动”创建 2 个空白空间(仅在 IE7 中)

我用这个 css 解决了:

form 
    margin: 0;

【讨论】:

以上是关于在 IE7 中使用 jquery slideToggle 时内容消失的主要内容,如果未能解决你的问题,请参考以下文章

使用兼容 IE7/8 的 jquery 旋转图像

IE7中的jQuery tablesorter插件列宽不正确

jQuery Ajax 微调器未在 IE7 中显示

jquery循环IE7透明png问题

IE7、IE8 和 IE9 中的 jQuery 旋转图像问题

如何修复 jQuery datepicker 的区域设置,使其适用于 Firefox 和 IE7?