javascript - 文本区域的 .resize() 函数

标签 javascript jquery events jquery-events

我想在用户更改其尺寸时保存 textarea 的高度和宽度。

我试过使用:

$('textarea').resize(function() {

    var height = $('textarea').css('height');

    var width = $('textarea').css('width');

    $.post('vocabresize.php?height=' + height + '&&width=' + width, function() {});

});

但是$.post()函数没有被调用,所以我改成了:

$('textarea').resize(function() {

    $('body').html('Yay it worked');

});

当我改变 textarea 的大小时,'Yay it worked' 没有出现。

最佳答案

textarea 在调整大小时不会触发 resize 事件;那是为了调整窗口大小。相反,您可以在函数外部存储文本区域的大小,然后在释放鼠标时检查更改。像这样的东西会起作用:

let myTextArea = $('#myTextArea');
let oldHeight = myTextArea.height();
let oldWidth = myTextArea.width();

myTextArea.mouseup(function() {
    let newHeight = $(this).height();
    let newWidth = $(this).width();
    if(newHeight !== oldHeight || newWidth !== oldWidth) {
        console.log("Text area was resized!");
        oldHeight = newHeight;
        oldWidth = newWidth;
    }
})

请注意,当 textarea 大小因其他原因发生变化时,这不会检测;例如,当窗口调整大小时。此外,要使其适用于页面上的每个文本区域,您需要遍历所有文本区域并将它们的尺寸存储在一个对象中,以便您可以检索它们。

关于javascript - 文本区域的 .resize() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53267288/

相关文章:

javascript - Grunt build 没有暴露我需要的全局变量

php - 如何使用 GPS 坐标从 mysql 检索最近的数据?

c# - Silverlight 自定义控件创建自定义事件

c# - 在BackgroundWorker的DoWork方法中引发附加事件

javascript - 如何通过 D3 单击事件让 $rootScope.$emit() 和 ng-show 协同工作?

javascript - 从数组 Javascript 生成随机元素组

javascript - 在 mongodb 中不显示 $Sum 输出

javascript - 将默认值分配给页面加载时加载的 .click 函数

javascript - 无效的 JavaScript 参数

javascript - 从 jQuery 中的对象数组动态生成选择选项