首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单jQuery文本区域在加载时不会扩展

简单jQuery文本区域在加载时不会扩展
EN

Stack Overflow用户
提问于 2012-09-06 01:45:41
回答 3查看 269关注 0票数 0

下面是一个用jQuery编写的简单文本区脚本,它扩展每个文本区以适应用户键入的内容。

代码语言:javascript
运行
复制
$(document).ready(function() {
    $('textarea').keyup(function() {
       var addin = 0;
       var txtheight = $(this).scrollTop();
       if(txtheight > 0){ addin = 4; }
       $(this).height(($(this).height() + txtheight + addin));
    });
    $('textarea').keyup();
});

问题是,如果文本区域的初始内容大于一行,文本区域不会扩展以适应加载的内容,因为无法计算滚动位置。

有没有什么办法来解决这个问题。

EN

回答 3

Stack Overflow用户

发布于 2012-09-06 01:57:29

你为什么不试一下这个插件呢?

http://www.jacklmoore.com/autosize

票数 1
EN

Stack Overflow用户

发布于 2012-09-06 02:00:32

您可以尝试执行以下操作

代码语言:javascript
运行
复制
$(document).ready(function() {
    $('textarea').each(function() {
       var addin = 0;
       var txtheight = $(this).prop("scrollHeight") -  $(this).height();
       if(txtheight > 0){ addin = 4; }
       $(this).height(($(this).height() + txtheight + addin));
    });
    $('textarea').keyup(function() {
       var addin = 0;
       var txtheight = $(this).scrollTop();
       if(txtheight > 0){ addin = 4; }
       $(this).height(($(this).height() + txtheight + addin));
    });
    $('textarea').keyup();
});​

然而,滚动高度不支持任何比它看起来更小的IE8。

票数 0
EN

Stack Overflow用户

发布于 2012-09-06 02:26:55

代码语言:javascript
运行
复制
$('textarea').each(function() {
        $(this).height($(this).prop('scrollHeight'));
    });
    $('textarea').keyup(function() {
       var addin = 0;
       var txtheight = $(this).scrollTop();
       if(txtheight > 0){ addin = 4; }
       $(this).height(($(this).height() + txtheight + addin));
    });

如丹尼所述,正确使用'scrollHeight'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12286996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档