当元素的大小改变时,resize事件处理程序不会调用

时间:2014-05-05 15:38:06

标签: javascript jquery svg

我的html body标签中有一个可调整大小的svg元素。但是,当我调整它的大小时,不会调用任何函数。

这是我的jQuery代码:

$(document).ready(function () {
    $('body').on('resize', 'svg', function() {
        console.log('svg is resizing');
    });
});

当svg元素的大小改变时,应调用此函数。但是,我在控制台中看不到任何“svg正在调整大小”输出。请解释为什么不调用此代码。

2 个答案:

答案 0 :(得分:1)

在正常使用情况下,resize事件仅在调整窗口大小时发送到window对象 - 这是浏览器触发的唯一时间。您可以使用.trigger()函数以编程方式触发任何元素,但是当元素大小发生变化时,通常会触发resize事件,如果您知道何时触发该事件,你可以在事件处理程序中运行代码。

那就是说,你运气不好 - 它只需要比这更多的代码。以下是您在完成目标时可能有用的上一个问题的链接:Determining if a div changes height

答案 1 :(得分:0)

将此添加到SVG元素:

<svg ....  onresize="console.log('resized');">
   <g>...</g>
</svg>