Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
ajax-Javascript自动扩展文本框_Javascript_Jquery_Ajax - Fatal编程技术网

ajax-Javascript自动扩展文本框

ajax-Javascript自动扩展文本框,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一本书要看 我已经能够创建一个自动扩展和减少文本区域,以便在用户键入文本时,如果用户删除文本,它将自动扩展和减少。问题是文本会反弹,并出现一个滚动条。我不知道为什么我打字时文本会弹来弹去,我也不知道如何删除滚动条 当我移除 while($(this).outerHeight() > this.scrollHeight - parseFloat($(this).css("borderTopWidth")) - parseFloat($(this).css("borderBottomWid

我有一本书要看

我已经能够创建一个自动扩展和减少文本区域,以便在用户键入文本时,如果用户删除文本,它将自动扩展和减少。问题是文本会反弹,并出现一个滚动条。我不知道为什么我打字时文本会弹来弹去,我也不知道如何删除滚动条

当我移除

while($(this).outerHeight() > this.scrollHeight - parseFloat($(this).css("borderTopWidth")) - parseFloat($(this).css("borderBottomWidth"))) {
        $(this).height($(this).height()-1);
};
然后,反弹文本消失

我也在用我的JS代码杀死一匹死马吗?有没有更简单的方法?我觉得我是

也是第一次键入时,textarea将插入并插入textarea。这不会发生在我的服务器上,但只发生在JSFIDLE上

有什么帮助可以停止跳转文本并删除滚动条吗

解决:

通过在函数中更改.keyup to.keydown并删除-parseFloat$this.cssborderTopWidth-parseFloat$this.cssborderBottomWidth,我终于能够解决我的问题。反弹文本和滚动条问题得到了修复。下面是JSFIDLE示例中的代码

.keydown(function(e) {
    while($(this).outerHeight() < this.scrollHeight) {
        $(this).height($(this).height()+1);
    };
    while($(this).outerHeight() > this.scrollHeight) {
        $(this).height($(this).height()-1);
    };
});

我注意到您丢失了,这是问题的一部分吗?谢谢,我添加了它,结果仍然相同。看起来您从这个问题中提取了代码:但是如果您查看与它一起发布的提琴,您会发现代码发生了相当大的变化。旁注:缓存jquery对象var$this=$this;在回调的顶部,每次调用$this都是在毫无理由地创建一个新的jquery对象