等待动画完成,然后返回

时间:2011-01-02 11:13:30

标签: jquery google-maps

我有一个谷歌地图应用程序,如果它太大,将调整地图div的大小,我遇到的问题是,我正在尝试使用Jquerys动画,并在它完成之前返回功能,我必须触发到谷歌已调整大小的地图。

因此,地图会在触发之前放大并设置边界,从而使其偏离。并且只有在第二次触发时才能正常工作。

function doResize() {
    if ($("#map_div").width() > 600) {
        $("#stores").hide(0, function(){
            $("#map_div").animate({width: '500px'}, function(){
                google.maps.event.trigger(G_MAP, 'resize');
                $("#stores").fadeIn(1000);
            });
        });
    }
}

我不能将其余的代码放在回调中有两个主要原因,一个是它的一个大功能,它在两个地方使用。宽度也只有600多次。

注意当你第一次点击newyork它的偏移而不是居中时,然后点击一个不同的状态然后点击纽约。

编辑:

由于我无法使动画同步并执行:

while($("#map_div").width() > 500) {
    $("#map_div").width($("#map_div").width() - 1)
}

根本不光滑,我决定放弃动画。迫使Jquery必须运行异步实际上有时会垮台。特别是当javascript本身是单线程时,你会认为他们可以选择等到它完成。

1 个答案:

答案 0 :(得分:4)