2012-02-24 9 views
-1

は、地図上のマーカーを設定するためのループを持っている:JavaScriptのループ奇妙な実行

for (i = 0; i <= 6; i++) { 
    _coord = prj_markers[i]; 
    alert(i); 
    instance.set_marker(instance, provider, i, _coord, divBlock); 
} 

このコードの警告「0」一度、(それが目に見えるよう)instance.set_markerを行います。実行instance.set_marker後

アラートの設定:

for (i = 0; i <= 6; i++) { 
    _coord = prj_markers[i];   
    instance.set_marker(instance, provider, i, _coord, divBlock); 
    alert(i); 
} 

アラートONCEが、それがなければならない6回の警告 "6"。どうしたの ?

+0

我々はより多くのコードが必要です。 instance.set_markerで何が起こっていますか? – zatatatata

+0

両方のアラートをコードに配置する場合はどうすればよいですか? – penartur

+0

instance.set_markerには何かが存在する必要があります。そのコードは何ですか? – Vikram

答えて

0

for文の先頭でこの方法で初期変数を宣言してみてください。 forループ

for (var i = 0; ... 
+0

それを貼り付けるのは大変です。ありがとう – vathsven4

0

ザ・ループが終了するグローバル変数としてiを使用しているので、あなたのinstance.set_marker機能は、グローバル変数としてiを使用している場合や6よりも大きな何かにその値を設定します。

は、変数名を変更してみてください、とvarステートメントを使用して、ローカル変数ます

for (var SomeOtherName = 0; SomeOtherName<= 6; SomeOtherName++) { 
    _coord = prj_markers[SomeOtherName];   
    instance.set_marker(instance, provider, SomeOtherName, _coord, divBlock); 
    alert(SomeOtherName); 
}