1

嗨,我只是制作了一个在 Google 上显示地图的 div,您可以在其中设置坐标等,无论如何,第一个问题是在动画高度时,里面的地图在大小上有这个问题:

如何处理隐藏 div 内的谷歌地图(更新图片)

我修复了它,就像initialize();我在 slideToggle 中调用的第一个答案一样修复了大小问题。问题是 initialize(); 与 slideToggle 花费相同的时间,所以我失去了高度动画,它就消失了,

无论如何,initialize();当slidetoggle Open the div时,是否有触发?

<script>
$('.dropdownmap').click(function(){
    $('#mapDisplayWrap').slideToggle();
    initialize();
})
</script> 
4

3 回答 3

4

是的,当动画完成时,slideToggle接受一个函数回调。

.slideToggle([持续时间] [,完成])

试试这个:

$('.dropdownmap').click(function(){
    $('#mapDisplayWrap').slideToggle(400,function(){initialize();});

})

如果您希望它在切换打开时运行,请使用:

$('.dropdownmap').click(function () {
    $('#mapDisplayWrap').slideToggle(400, function () {
        if ($(this).is(":visible")) {
            initialize();
        }
    });
});
于 2013-09-13T17:57:08.917 回答
3

无论如何都可以触发初始化();只是当slidetoggle 打开div?

您需要使用动画回调来检查元素是否可见(刚刚打开)并在可见时执行initialize

$('.dropdownmap').click(function(){
  $('#mapDisplayWrap').slideToggle(function(){
    if($(this).is(':visible'))
      initialize();
  });
});
于 2013-09-13T17:58:01.437 回答
1

添加initialize为 slideToggle 回调:

$('#mapDisplayWrap').slideToggle(initialize);
于 2013-09-13T17:57:01.790 回答