有一个非常简单的jquery插件:autotextarea.我想教一个小技巧:最初调整大小以补偿表单中提供的文本,而不是等待第一次击键.有些灵魂请告诉我除了onkeyup之外还要添加哪种处理程序?
只是添加一个调用grow(this)到初始化函数是行不通的 - 显然,在调用时,布局不完整,有效宽度很小,所以它们太高了.这是我的修改版本:唯一的变化就是调用grow.
//Public Method
jQuery.fn.autoGrow = function(){
return this.each(function(){
setDefaultValues(this);
grow(this);
bindEvents(this);
});
};
Run Code Online (Sandbox Code Playgroud)
编辑:
在document.ready()上运行它不起作用,因为尚未计算textarea的cols属性.但是,我想出了一些东西,也许你可以帮我清理一下.cols我没有注意,而是使用$(txtArea).width(),然后将其除以包含典型字符的隐藏div的宽度.一切都很好,除了需要将隐藏的div放在每一页上.有什么建议制造或避免该div?
典型文本区域HTML:
<textarea name="text[0]">?? ?? ?? ?? ??? ??? ?? : ?? ?? ? ?? ? ?? ?? : ??? ? ?? ?? ( ??? ) 09 : 00~ 13 : 30 ?? : ??? ?? ? ?? ? ? CR 403 ( ??? ??? ? ? 160 ? ) ?? ?? : ?? ?? ?? ?? ( European Union Research Forum , EURF ) ?? ?? ?? ?? ?? ?? ?? ?? ?? ??09 : 00 -09 : 10 ? ? 09 :10 -09 : 20 ?? ??? ( ?? ?? ?? ? ) 9 : 20 - 10 : 20 ?? ? : ?? ?? ? ? ?? ??? ?? ( ???? ) ??? 1. </textarea>
Run Code Online (Sandbox Code Playgroud)
和相关的CSS:
textarea {
width: 100%;
font-family: Arial, simsun;
font-size: 16px;
}
Run Code Online (Sandbox Code Playgroud)
我不确定该插件到底是如何工作的,但这可能是一个临时解决方案。
将文本区域设置为自动增长后,动态向文本区域添加一个字符,以便触发插件,然后删除该字符。或者您可能需要模拟按键,两者之一。
如果您需要代码示例,请告诉我。