2012-11-23 136 views
0

我有一段代码改变了DIV的内容以匹配textarea的内容,然后将DIV中的高度改变应用到textarea元素。内容改变后的元素高度

<textarea class="fieldEdit" data-fieldid="1_description"></textarea> 
<div class="hiddenDiv" data-fieldid="1_description"></div> 

<Script> 
$('.fieldEdit').live('keyup', function(){growTextArea(this)}); 

function growTextArea(parameter) { 
// works 
    $('div').find("[data-fieldid='1_description']").text($(parameter).val()); 
    $("[data-fieldid='1_description']").text($(parameter).val()); 

// No Works 
    height = $('div').find("[data-fieldid='1_description']").outerHeight(); 
    height = $("[data-fieldid='1_description']").outerHeight(); 
    alert(height); 

// Works 
    heightDiv = $('.hiddenDiv').outerHeight(); 
    alert(heightDiv); 

    $(parameter).css('height', $('div').find("[data-fieldid='1_description']").outerHeight()); 
} 
</script> 

的DIV内容改变适当,因此搜索功能工作正常,但搜索功能总是返回DIV的原始高度。该函数由textarea中的onKeyUp调用。如果.find被替换为.hiddenDiv,则高度变化会被正确反映。

+1

JSFiddle exampe may?哪一个'.find'你交换'.hiddenDiv'? –

+1

是[this](http://jsfiddle.net/kKqWG/1/)你在做什么? –

+0

实际上有一个错误的'没有工作',因此开始$('div')。找到... – Neph

回答

2

您需要使用jQuery promise函数。例如:

$('#divId').html(someText).promise().done(function(){ 
     // check height now 
    }); 
相关问题