在另一篇有关调整文本区域大小的文章中引用了此链接。该页面(和网站)现在全部关闭。
是否有人拥有用于调整文本区域大小的代码:
http://javascriptly.com/examples/jquery-grab-bag/autogrow-textarea.html
现在在下面找到了EDIT。以防万一它再次下降:
(function ($) {
/*
* Auto-growing textareas;
*/
$.fn.autogrow = function (options) {
this.filter('textarea').each(function () {
var $this = $(this),
minHeight = $this.height(),
lineHeight = $this.css('lineHeight');
var shadow = $('<div></div>').css({
position: 'absolute',
top: -10000,
left: -10000,
width: $(this).width() - parseInt($this.css('paddingLeft')) - parseInt($this.css('paddingRight')),
fontSize: $this.css('fontSize'),
fontFamily: $this.css('fontFamily'),
lineHeight: $this.css('lineHeight'),
resize: 'none'
}).appendTo(document.body);
var update = function () {
var times = function (string, number) {
for(var i = 0, r = ''; i < number; i++) r += string;
return r;
};
var val = this.value.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&').replace(/\n$/, '<br/> ').replace(/\n/g, '<br/>').replace(/ {2,}/g, function (space) {
return times(' ', space.length - 1) + ' '
});
shadow.html(val);
$(this).css('height', Math.max(shadow.height() + 20, minHeight));
}
$(this).change(update).keyup(update).keydown(update);
update.apply(this);
});
return this;
}
})(jQuery);
最佳答案
这是抓包的链接
http://onehackoranother.com/projects/jquery/jquery-grab-bag/autogrow-textarea.html