我有一个textarea,默认列数,如10或15或其他。我希望文本区域在blur上收缩包装文本。有谁知道怎么做?
到目前为止我已经
了$('textarea').live('blur', function() {
var textAreaWidth = $(this).val().length;
$(this).attr('cols', 'textAreaWidth');
});
但由于显而易见的原因,这很难看。我根本不知道如何做到这一点。
任何想法?
答案 0 :(得分:2)
从
中的'textAreaWidth'周围删除单引号 $(this).attr('cols', 'textAreaWidth');
这是一个变量,不需要引号。
答案 1 :(得分:1)
如果您只想减小尺寸,则应检查该值是否小于20,然后减少列数。试试这个:
<textarea rows="2" cols="20"></textarea>
$('textarea').on('blur', function() {
var textAreaWidth = $(this).val().length;
if (textAreaWidth < 20) {
$(this).attr('cols', textAreaWidth);
}
$('textarea').on('keypress', function() {
$(this).attr('cols', '20');
});
});
答案 2 :(得分:0)
$('textarea').bind('blur keyup', function() {
$(this).attr('cols', $(this).val().length);
});
这会使您在键入/模糊时收缩或增长。