0

テキストエリアのコンテンツと一致するようにDIVのコンテンツを変更し、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の元の高さを返します。この関数は、テキストエリアのonKeyUpによって呼び出されます。.findが.hiddenDivに交換された場合、高さの変更は適切に反映されます。

4

1 に答える 1

2

jQuery promise 関数を使用する必要があります。何かのようなもの:

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