2012-04-02 105 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