javascript - jQuery 在加载时自动调整预填充文本区域的大小

标签 javascript jquery textarea autoresize

我有一个在成功的 AJAX 调用后创建的文本区域。它可能包含相当多的文本,我希望自动设置它的高度,以便整个文本无需滚动即 cocoa 见。

我正在使用 autoResize 插件 (http://james.padolsey.com/javascript/jquery-plugin-autoresize/),但它仅根据用户输入调整输入大小。

那么,如何调整文本区域的大小以使其适合其包含的文本?

这是相关函数的代码(var类型可以是'input'或'textarea')

function edit_create_input(name, value, type, autocomplete, autoresize)
    {
    var input=$('<' + type + ' class="edit-"' + name + '  name="'+name+'">').val(value); 
    if (autocomplete)
        {
        input.autocomplete("ajax.autosuggest.php",{'multiple':true});
        }
    if (autoresize)
        {
        input.autoResize();
        }
    return input;

最佳答案

在<罢工> plugin source 有 3 个事件会触发 updateSize() 函数:

// Bind namespaced handlers to appropriate events:
textarea
    .unbind('.dynSiz')
    .bind('keyup.dynSiz', updateSize)
    .bind('keydown.dynSiz', updateSize)
    .bind('change.dynSiz', updateSize);

您应该在 ajax 加载内容后触发其中之一:

$("#my_textarea").trigger('change.dynSiz');

编辑:根据您的代码

// ...
if (autoresize)
{
    input.autoResize();
    input.trigger('change.dynSiz');
}
// ...

注意:.trigger() 与命名空间事件一起使用更方便,因为使用 .change() (这也很好) ) 将触发绑定(bind)到对象的每个更改事件,而不仅仅是您需要的事件。

更新:旧的插件源不再可用,我只能找到原始版本 here 的稍微修改版本。 .

关于javascript - jQuery 在加载时自动调整预填充文本区域的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8267528/

相关文章:

java - 在javascript中读取 session 变量?

javascript - 隐藏值低于特定值的类别 Highcharts

javascript - 如何使用jquery将二维数组值推送到输入字段?

jquery - Textarea 的样式不适用于 Mobile jquery

javascript - 如何正确使用socket.io和oop

javascript - react native flexDirection 错误?

javascript - 如何在不输入递归的情况下请求twitter api

jQuery 嵌套 ul 与 li 的父子,显示隐藏

ruby-on-rails - 每个逗号后的项目符号 Rails 4

java - 具有可扩展单元格的动态布局