在另一篇有关调整文本区域大小的文章中引用了此链接。该页面(和网站)现在全部关闭。

是否有人拥有用于调整文本区域大小的代码:

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, '&lt;').replace(/>/g, '&gt;').replace(/&/g, '&amp;').replace(/\n$/, '<br/>&nbsp;').replace(/\n/g, '<br/>').replace(/ {2,}/g, function (space) {
                        return times('&nbsp;', 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

09-25 21:13