【问题标题】:Add a function to slidetoggle just when open添加一个功能以在打开时进行滑动切换
【发布时间】:2013-09-18 12:01:13
【问题描述】:

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

how to deal with google map inside of a hidden div (Updated picture)

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

有没有在滑动切换打开 div 时触发initialize();

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

【问题讨论】:

    标签: javascript jquery slidetoggle


    【解决方案1】:

    添加initialize作为slideToggle回调:

    $('#mapDisplayWrap').slideToggle(initialize);
    

    【讨论】:

    • 谢谢老兄!会试试的
    【解决方案2】:

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

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

    试试这个:

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

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

    $('.dropdownmap').click(function () {
        $('#mapDisplayWrap').slideToggle(400, function () {
            if ($(this).is(":visible")) {
                initialize();
            }
        });
    });
    

    【讨论】:

      【解决方案3】:

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

      您需要使用动画回调来检查元素是否可见(刚刚打开),如果是则执行initialize

      $('.dropdownmap').click(function(){
        $('#mapDisplayWrap').slideToggle(function(){
          if($(this).is(':visible'))
            initialize();
        });
      });
      

      【讨论】:

      • 感谢所有答案,这太棒了 XD!
      • 恭喜获得 10K! +1 给你
      • @Sergio Ha!感谢您的关注。也 +1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      相关资源
      最近更新 更多