textarea 上的 resize() 不会检测到手动调整大小仅以编程方式进行

resize() on a textarea doesn't detect manual resizing only programmatical

文本区域在手动调整大小时(具有样式 resize:both)和以编程方式调整大小时需要做一些事情。 它以编程方式工作正常,但当用户手动调整大小时就不行了。

textarea.resize( function(tn,newh,scroll){
                    console.log('resize');
                    ....... );
                });

我读到一些关于 JQuery 中存在错误的信息,检测到 Chrome 中文本区域的手动调整大小。但它在 Firefox 等中也不起作用。此外,当我尝试在父 div 上调用相同的功能(它也会自动调整大小)时,它也不起作用。 文本区域有

    textArea.css('resize','both');
    textArea.css('overflow','auto');

谁能告诉我为什么在手动调整大小时不会触发调整大小事件,我该怎么办?

我没有看到你的源代码清单,你试过 jQuery UI resizable 了吗?它允许用户使用鼠标调整任何 DOM 元素的大小。

$(function() {
    $( "textarea" ).resizable();
});

您的 CSS 调整大小 属性 可能不起作用的原因可能是您不小心将 "textarea" 中的字母 "a" 大写了。如果你想设置宽高限制,也可以通过:

textarea { 
    resize:vertical; max-height:200px; min-height:100px; 
}

您可以阅读更多相关内容 CSS 调整大小 article

您是否尝试将脚本修改为:

$("textarea").resizable({
    resize:function(){
       $( "body" ).prepend( "<div>" + $( window ).width() + "</div>" );
    }
})

我需要看看你的 Javascript 的其余部分,以找出它没有启动的原因。但是您不一定需要使用调整大小功能。尝试将其与 mouseup 事件绑定:

$('textarea').bind('mouseup',function(){
    if(this.style.width != this.outerWidth || this.style.height != this.outerHeight){
        $(this).resize();
        this.outerWidth  = this.style.width;
        this.outerHeight = this.style.height;
    }
});

参见:jsfiddle