Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery在加载时自动调整预填充文本区域的大小_Javascript_Jquery_Textarea_Autoresize - Fatal编程技术网

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

Javascript jQuery在加载时自动调整预填充文本区域的大小,javascript,jquery,textarea,autoresize,Javascript,Jquery,Textarea,Autoresize,我有一个textarea,它是在成功的AJAX调用后创建的。它可能包含相当多的文本,我想它的高度自动设置,使整个文本将是可见的,而无需滚动 我正在使用自动调整大小插件(http://james.padolsey.com/javascript/jquery-plugin-autoresize/),但它仅根据用户输入调整输入大小 那么,如何调整文本区域的大小,使其适合包含的文本 以下是相关函数的代码(变量类型可以是“input”或“textarea”) 函数编辑\u创建\u输入(名称、值、类型、自动

我有一个textarea,它是在成功的AJAX调用后创建的。它可能包含相当多的文本,我想它的高度自动设置,使整个文本将是可见的,而无需滚动

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

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

以下是相关函数的代码(变量类型可以是“input”或“textarea”)

函数编辑\u创建\u输入(名称、值、类型、自动完成、自动调整大小)
{
变量输入=$('').val(值);
如果(自动完成)
{
autocomplete(“ajax.autosuggest.php”,{'multiple':true});
}
如果(自动调整大小)
{
input.autoResize();
}
返回输入;
中有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()
(这也很好)将触发绑定到对象的每个更改事件,而不仅仅是您需要的事件


更新:旧的插件源代码不再可用,我只能找到一个稍微修改过的原始版本。

你能给我们看看你当前的源代码吗?有时候,解决方案就摆在眼前。请记住这句话:“一张图片能表达千言万语。”也许是调整插件代码?代码很简单,也不是很长。我添加了代码的相关部分。不幸的是,我不太擅长JS和jQuery,所以现在修改插件代码对我来说有点太难了。这似乎不起作用。可能是因为元素当时实际上不在DOM中吗?编辑:不,即使我在添加元素后尝试此操作,它仍然不起作用。我尝试在JFIDLE中测试此操作,但根本无法使其起作用。插件主页上有一条注释(实际上是最后一条),其中有人想做你想做的事,他只使用
.keydown()
来触发事件。你能链接你的小提琴吗?我做到了!原来我们有不同的源代码(我有一个更新的,从)。它有不同的触发器,所以
.trigger('change.autoResize'))
是为我做的!但是,我会的,这对我来说似乎有点像黑客,所以我会在接受这个答案之前等待其他答案。事实上,模拟用户事件比黑客更像是一个把戏,习惯它;)很高兴我能帮上忙!干杯!知道这个插件去了哪里吗?James Padolsey的github似乎没有,而且返回404。实际源代码为,但似乎是过时的版本。
// ...
if (autoresize)
{
    input.autoResize();
    input.trigger('change.dynSiz');
}
// ...