$(document).on( 'focus', 'textarea.smart-text-area:not([readonly]):not([disabled])', function() { var $this = $(this); var height = $this.css('height'); if ($this.hasClass('textarea-sm-present')) { $this .removeClass('textarea-sm-present') .addClass('textarea-sm'); $this.attr('rows', '1'); } else if ($this.hasClass('textarea-sm')) { // Set the nr. of rows to 1 if small textarea $this.attr('rows', '1'); } else { $this.removeAttr('rows'); } // Initialize autosize plugin if it's not initialized yet if (_.isUndefined($this.data('autosize'))) { $this.autosize({append: ''}); // Restore previous height! $this.css('height', height); } $this.trigger('autosize.resize'); } );