调整窗口大小时,触发器按类名称调整textareas的大小

时间:2015-02-27 13:22:31

标签: javascript jquery html css

我试图在窗口调整大小后0.5秒后用类“abc”触发所有textareas的scrollHeight

此行似乎不起作用。 document.getElementsByClassName(".abc").style.height = (document.getElementsByClassName(".abc")).scrollHeight+px';

如何在调整窗口大小后触发所有类名为“abc”的textareas以适应其内容高度?

$(window).resize(function() {
    if(this.resizeTO) clearTimeout(this.resizeTO);
    this.resizeTO = setTimeout(function() {
        $(this).trigger('resizeEnd');
    }, 500);
});

$(window).bind('resizeEnd', function() {
document.getElementsByClassName("abc").style.height = (document.getElementsByClassName("abc")).scrollHeight+'px';
});

3 个答案:

答案 0 :(得分:1)

您正在使用jQuery,因此请使用jQuery设置高度

$(".abc").each(
    function() { 
        $(this).height(this.scrollHeight);
    }
);

现在您的代码会因多种原因而失败。您无法为HTMLCollection设置值。您的className中包含.,它不是选择器。

所以如果你想用普通的旧JavaScript

来做
var tas = document.getElementsByClassName("abc");
for(var i=0; i<tas.length; i++) {
    tas[i].style.height = tas[i].scrollHeight + "px";
}

现在最后我不认为这是你100%想要的,但这是如何让你的代码在上面运行。

答案 1 :(得分:0)

$(window).bind('resizeEnd', function() {
    $(".abc").height( $(".abc")[0].scrollHeight );
});

答案 2 :(得分:-2)

document.getElementsByClassName(".abc").css('height',document.getElementsByClassName(".abc").scrollHeight+'px');