2012-04-02 84 views
0

我改变了一个动态div的内容,使用jQuery 的div的高度应根据新的内容改变/动画动画的高度,在IE

我发现,在完美地工作的某些行不工作Chrome,Firefox和iPhone上。 但在IE的内容动画,但它出去“的框”。含义..股利一点儿也不改变

var $mydiv = $('#venues'); 
$mydiv.css('height', $mydiv.height()); 
$mydiv.html(TheDynamicContent); 
if (!$mydiv.find("div.innerWrapper").length) { $mydiv.wrapInner('<div class="innerWrapper"/>'); } 
$mydiv.animate({height: $('div:first',$mydiv).height()}); 

我寻觅了很多努力寻找替代/修复的高度,没有运气.. 怎么办? ;)

更新:似乎curvycorners正在生成一个额外的div,只有IE敏感。所以这段代码其实很好。

+0

什么版本的IE不起作用? – j08691 2012-04-02 16:08:04

+0

IE 9(允许输入简短注释的填充文本) – mowgli 2012-04-02 16:11:04

回答

0

将出现以下工作得很好,我(在IE10,9,8测试和7)

$("#venues") 
    .css("height", function(){ return $(this).height(); }) 
    .html("This is much longer text to force the element to grow.") 
    .wrapInner("<div/>") 
    .animate({ 
    "height": $("div:first", "#venues").height() 
    }, 1000); 

在线演示:http://jsbin.com/inudaz/2/edit

警告:你可能会遇到jsbin提示$的错误是未定义的。如果是这种情况,只需下载示例(使用保存>从jsbin下载)并在本地运行即可。

解决方案: OP的项目正在使用一个jQuery插件,它修改了关键区域中的DOM,导致意想不到的行为。禁用这个插件解决了这个问题。

+0

我没有改变。文本脱离div,并且div本身仍然不会改变高度 – mowgli 2012-04-02 16:25:27

+0

@mowgli我们有一个问题,因为上面的代码适用于我。您是否尝试过jsbin上的演示,或者您是否将此代码复制/粘贴到您自己的项目中?如果你把它粘贴到你自己的项目中,你可能会在别处遇到问题。 – Sampson 2012-04-02 16:26:51

+0

我尝试了两种方法;)在你的演示中,内容不会改变或动画(在IE中)。并且在我自己的代码中,结果与我之前的代码一样,是excatctly – mowgli 2012-04-02 16:29:34

0

尝试指定延迟?

$mydiv.animate({height: $('div:first',$mydiv).height()}, 500); 
+0

这没有奏效。我编辑了我的问题。所以它是“但在IE内容动画,但它出去”的框“意思..高度的div不会改变” – mowgli 2012-04-02 16:08:03