javascript - 当元素的大小发生变化时,调整大小事件处理程序不会被调用

标签 javascript jquery svg

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

这是我的 jQuery 代码:

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

当 svg 元素的大小发生变化时,应调用此函数。但是,我在控制台中没有看到任何“svg is resizing”输出。请解释为什么此代码没有被调用。

最佳答案

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

也就是说,您并不是运气不好——它只是需要比这更多的代码。以下是上一个问题的链接,可能对您实现目标有用:Determining if a div changes height .

关于javascript - 当元素的大小发生变化时,调整大小事件处理程序不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23476433/

相关文章:

javascript - 如何在javascript中传递一个变量

javascript - jQuery 将删除按钮附加到列表中会不断添加额外的按钮

javascript - 为什么 d3 pack 布局会意外崩溃?

php - Wordpress 将短代码插入菜单项

javascript - 是否可以创建一个全局 Ejs 组件?

javascript - 如何正确地为我的变量创建 for 循环?

javascript - 通过 jquery ajax 发布和获取值

javascript - 如何使用变量按 id 预选选项

javascript - 放大时如何将周围的元素推离屏幕?

jquery - 生成带有虚线填充线的 SVG 矩形