我在IE7及以下版本中有一个问题,我正在切换通过$.slideUp()
& $.slideDown()
,有一个消失的文本区域。
这是表格代码:
<% using (Html.BeginForm("AddComment", "Comment", FormMethod.Post, new { id = "addCommentForm", @class = "comments-form" }))
{ %>
<input type="hidden" name="SiteID" value="<%: Model.Name %>" />
<table>
<colgroup>
<col class="comments-form-text" />
<col class="comments-form-submit" />
</colgroup>
<tbody>
<tr>
<td>
<textarea name="Text" rows="2" cols="75"></textarea>
</td>
<td>
<div>
<input type="submit" value="Add Comment" />
</div>
</td>
</tr>
</tbody>
</table>
<% } %>
我正在点击javascript(使用jQuery)按钮点击显示:$('#addCommentForm').slideDown();
我的问题是,在IE7及以下版本中,当表单完成向下滑动时,文本区域会消失。它只会在我大多数提交按钮(使用jQueryUI .button()
方法设置样式)时重新出现。
当我说消失时,它消失了。看看IE开发工具中的html,它的html仍然存在,它根本就没有渲染。
尽管我非常讨厌IE,但我需要支持它:(
任何人都有任何想法为什么会这样?或者我如何减轻它?
答案 0 :(得分:22)
有一些方法可以解决这个问题:
span
而不是div
元素
滑下。可能是IE的渲染
错误; zoom:1;
在你的CSS中你的元素
试图slideDown; min-height
到你的滑动元素
你的CSS; 答案 1 :(得分:1)
在元素上设置宽度将解决问题。所有@paulillo解决方案都运行良好,但设置宽度将有助于保护您免受其他相关错误的影响。
slideDown暂时将位置设置为绝对位置,这有时会产生一个称为“跳转”错误的错误。发生这种情况是因为有时slideDown无法准确计算元素宽度在短时间内改变其绝对值时的高度。我讨厌设置宽度,除非我必须但在这种情况下,如果可以,我会推荐它。