2017-08-17 56 views
0

所以我正在處理一些文本區域,我不想滾動條。我已經想通了如何使textarea的成長爲具有下列用戶輸入新的信息:設置textarea高度以匹配填充的數據

$('.step-change__text').on 'keyup keydown', -> 
     resize(this); 
     return 
resize = (element) -> 
    element.style.height = element.scrollHeight + 'px' 
    return 

什麼IM很難找到(導致搜索都會導致上述答案)是用戶可以編輯記錄中預先填充了文本,我希望文本區域可以用已保存的文本進行擴展。

編輯:我想只是做它在頁面加載使用此代碼:

$('.step-change__text').each -> 
     resize(this) 
     return 

但是沒有做它

+0

然後,所有你需要做的是同樣的事情......只是不是由按鍵觸發,但在內容插入到文本區域。 (所以,可能已經在頁面加載...或稍後,如果你這樣做動態填充textarea與保存的值。) – CBroe

+0

緊跟在你的函數定義之後,你可以添加一個簡單的調用到該函數'resize( $('。step-change__text'))'它會在頁面加載時更新大小。另外,這篇文章可能會幫助你完成和瀏覽器兼容的版本:https://stackoverflow.com/questions/454202/creating-a-textarea-with-auto-resize – MrYoshiji

回答

0

正如@CBroe已經提到。你所要做的就是不僅觸發關鍵事件的功能,而且觸發內容更改。試試這個代碼:

$('.step-change__text').on 'input keyup keydown', -> 
     resize(this); 
     return 
resize = (element) -> 
    element.style.height = element.scrollHeight + 'px' 
    return