2011-08-05 43 views
1

通过PHP控制命令,我产生一些JavaScript代码,女巫看起来是这样的:的jQuery的代码是如何执行

<script type="text/javascript"> 
    $(window).load(function() { 
    maps.showUsers('Odenthal, Germany',1); 
    maps.putCenter(51.1833,7.2); 
    }); 
</script> 

我必须要肯定的是,第一行第二前执行线。这适用于IE和FF,但不适用于Chrome。我如何控制它?

+1

代码通常依次执行。 showUsers()是否是异步的(它会立即返回并在以后执行任务)? –

+0

该函数的第一行总是在第二行之前运行。 – js1568

+0

这两种方法都与google.maps一起使用,第一种将圆圈放在特定半径范围内的用户,并进行地理编码,有时会有两三个用户,并且该函数不仅被调用一次,最后一个函数应该设置地图,在生成usercircls之后......所以设置中心在ie和ff中工作正常,但是chrome设置了一个随机中心 – sinini

回答

0

试着拖延一下。您可以根据需要设置适当的延迟时间。

$(window).load(function() { 
    maps.showUsers('Odenthal, Germany',1); 
    setTimeout(function(){ 
     maps.putCenter(51.1833,7.2); 
    }, 400); 
    }); 
+0

感谢这对我来说工作得很好! – sinini

2

尝试回调:

$(window).load(function() { 
    maps.showUsers('Odenthal, Germany',1, function(){ 
     maps.putCenter(51.1833,7.2); 
    }); 
}); 

你必须使用该回调在你的函数的末尾:

function showUsers(a, b, c, callback) { 
    ... 
    if(typeof callback == 'function') 
     callback.call(); 
} 
+1

对不起,代码也可能看起来像这样,解释有点简短: – sinini

+0

$(window).load(function(){ maps.showUsers('Leverkusen,Germany',1); maps.showUsers( 'Solingen,德国',1); maps.showUsers( 'Wuppertal,德国',2); maps.showUsers( '上恩策尔,德国',1); maps.putCenter(51.1833,7.2); – sinini