Jquery 如何检测div调整大小?

Jquery 如何检测div调整大小?,jquery,resize,listener,Jquery,Resize,Listener,我有一个地图画布,需要在调整大小时进行检查。默认的min height为200px 调整大小的方法是单击一个按钮,并向div添加一个额外的类。这个额外的类将min height的值更改为350px 我没有成功地在div上添加侦听器。因此目前唯一有效的解决方案是按钮上的.on('click)事件 $('#resize').on('click', function(){ setTimeout(function () { google.maps.even

我有一个地图画布,需要在调整大小时进行检查。默认的
min height
为200px

调整大小的方法是单击一个按钮,并向div添加一个额外的类。这个额外的类将
min height
的值更改为350px

我没有成功地在div上添加侦听器。因此目前唯一有效的解决方案是按钮上的
.on('click)
事件

    $('#resize').on('click', function(){
        setTimeout(function () {
            google.maps.event.trigger(map, "resize");
            map.fitBounds(bounds);
        }, 500);
    });
我尝试了以下解决方案,但没有成功:

    // Attemt 1
    google.maps.event.addDomListener(document.getElementById('map-canvas'), 'resize', function() {
        google.maps.event.trigger(map, "resize");
        map.fitBounds(bounds);
    });

    // Attemt 2
        google.maps.event.trigger(map, "resize");
        map.fitBounds(bounds);
    });

    // Attemt 3
    $(window).resize(function() {
        google.maps.event.trigger(map, "resize");
        map.fitBounds(bounds);
    });
你可以看到我的眼睛


有人知道我是如何做到这一点的吗?

div不会触发resize,因此您无法侦听该事件的发生,然后执行代码。但是,您可以做的是以下几点,我已经对它进行了测试,它可以正常工作

    $(window).on('resize', function(){
        $('#map-canvas').trigger($.Event('resize'));
        map.fitBounds(bounds);
    });

    $('#map-canvas').bind('resize', function(){
        $('#map-canvas').toggleClass('resize'); 
    });

触发“resize”事件,然后绑定到它。div不会触发resize,因此您无法侦听该事件的发生,然后执行代码。但是,您可以做的是以下几点,我已经对它进行了测试,它可以正常工作

    $(window).on('resize', function(){
        $('#map-canvas').trigger($.Event('resize'));
        map.fitBounds(bounds);
    });

    $('#map-canvas').bind('resize', function(){
        $('#map-canvas').toggleClass('resize'); 
    });

触发一个“调整大小”事件,然后绑定到它就可以了。

这并不能直接回答这个问题,但在Chrome开发者论坛上的这篇文章中,有一些关于不同方法的有用讨论,以及实现的链接,内容是关于删除非标准的“overflowchanged”这曾经提供了一个解决方案:

这并没有直接回答这个问题,但在Chrome开发者论坛的这篇文章中,有一些关于不同方法的有用讨论,以及实现的链接,这篇文章是关于删除非标准的“overflowchanged”这曾经提供了一个解决方案:

整个要点是在div的
resize
事件/操作上有一个侦听器,这样我就不必使用
$('#resize')。on('click',function()…
No,因为我没有更改窗口,只是窗口中的一个DOM元素。打开JS FIDLE并自己测试它。关键是在div的
resize
event/action上有一个侦听器,这样我就不必使用
$('#resize')。on('click',function()…
No,因为我没有更改窗口,只是窗口中的一个DOM元素。打开JS FIDLE并自己测试它。
    $(window).on('resize', function(){
        $('#map-canvas').trigger($.Event('resize'));
        map.fitBounds(bounds);
    });

    $('#map-canvas').bind('resize', function(){
        $('#map-canvas').toggleClass('resize'); 
    });