scrollHeight不会动态更改字体大小

时间:2014-01-21 04:50:06

标签: javascript jquery

我使用以下代码根据输入动态更新textarea的字体大小:

$('.font-size').change(function() {
                var input = $(this).val(); // grab the input value
                var newsize = parseInt(input);

                if (input.length > 0)
                {
                    // replace css value on live preview 
                    $('.sizeable').css('font-size', newsize + 'px'); 
                    if (this.clientHeight < this.scrollHeight) {
                        alert("Generic message does not fit in allocated space.\n Please reduce the text size or reword your message.");
                    }   
                } 
            }); 

但由于某种原因,当重新调整字体大小时,this.scrollHeight不会更新(保持与开始时相同)。

我做错了吗?

1 个答案:

答案 0 :(得分:1)

在您的案例中看起来像this,请参考input元素,尝试定位您的textarea

$('.font-size').change(function () {
    var input = $(this).val(); // grab the input value
    var newsize = parseInt(input);

    if (input.length > 0) {
        // replace css value on live preview 
        $('.sizeable').css('font-size', newsize + 'px');
        if ($('textarea')[0].innerHeight() < $('textarea')[0].scrollHeight) {
            alert("Generic message does not fit in allocated space.\n Please reduce the text size or reword your message.");
        }
    }
});

我在这里使用innerHeight()代替clientHeight