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,则高度变化会正确反映。

4

1 回答 1

2

您需要使用 jQuery 承诺功能。就像是:

$('#divId').html(someText).promise().done(function(){
        // check height now
    });
于 2015-07-15T09:37:52.170 回答