2011-08-05 66 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