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

関数の最初の行は常に2番目の行の前に実行されます。 – js1568

+0

両方のメソッドがgoogle.mapsで使用されています。最初のものは特定の半径内のユーザーのための円を配置し、ジオコーディングしています。時には2〜3人のユーザーがいて、関数は一度だけ呼び出されません。マップ、usercirclsが生成された後...ので、センターの設定がうまくいくと、ffが、クロムはランダムな中心を設定します – 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、Germany'、1); maps.showUsers( 'Wuppertal、Germany'、2); maps.showUsers( 'Obernzell、Germany'、1); maps.putCenter(51.1833,7.2); – sinini