次の問題があります: たくさんのテキストエリアを含むページ (Struts2 と jQuery Struts Plugin を使用) を作成しようとしています。それらにはすべて、DB から取得したテキストがあります。
テキストの高さを動的に調整するために見つけた次の短いコード スニペットを使用します。
jQuery.fn.elasticArea = function() {
return this.each(function(){
function resizeTextarea() {
this.style.height = this.scrollHeight/2 + 'px';
this.style.height = this.scrollHeight + 'px';
}
$(this).keypress(resizeTextarea)
.keydown(resizeTextarea)
.keyup(resizeTextarea)
.css('overflow','hidden');
resizeTextarea.call(this);
});
};
$('textarea.detail').elasticArea();
テキストエリアの 1 つに入ってボタン (Tab や Shift など) を押すとすぐに、うまく機能します。
問題は、各テキストエリアの scrollheight が 0 であるため、最初の読み込み後、テキストエリアの高さが 0 になることです。
テキストエリアに次のコードを使用します (s:iterator 内:
<s:textarea cols="80" name="viewList[%{#viewStatus.index}].beschreibungen[%{#beschrStatus.index}].wert" cssClass="detail"/>
しかし、通常の html テキストエリアでも同じ動作を示します。
読み込み時にスクロールの高さが 0 になるのはなぜですか? 回避策はありますか?
前もって感謝します!