私はイオンマップにGoogleマップを実装していますが、マーカーとインフォウィンドウを実装しようとすると問題が発生しています。click addListenerでforloopを実装する
あなたは以下を参照することができますように、私はマーカーのそれぞれに情報ウィンドウを実装しようとしたら、それは意図したとおりに動作します。
this.markerStart[0].addListener('click',()=>{
console.log('clicked')
this.popuparray[0].open(this.map,this.markerStart[0]);
})
this.markerStart[1].addListener('click',()=>{
console.log('clicked2222')
this.popuparray[1].open(this.map,this.markerStart[1]);
})
が、私はforループを使用するように変更しようとすると、それは動作しません。 。
まったく同じように見えますが、なぜ動作しないのか分かりません。
//ここで、this.markerStart.lengthは2ですが、forループでは以下のようには動作しません。
console.log(this.markerStart);
console.log(this.markerStart.length);
console.log("this.markerStart")
for(var j=0; j<this.markerStart.length; j++){
this.markerStart[j].addListener('click',()=>{
console.log(j);
//only log 2 ...which is I don't understand. why log 2?
// j should be 0 and 1...because this.markerStart.length is 2
this.popuparray[j].open(this.map,this.markerStart[j])
})
}
私もこれを試してみました:
for(var j=0; j<2; j++){
this.markerStart[j].addListener('click',()=>{
console.log(j);
})
}
を、私は私が最初のマーカーをクリックしたとき、それは1を記録しなければならないし、第2のマーカーをクリックしたときに、それは2を記録することが、その唯一の必要があることを最初に考えましたロギング2.
clickが呼ばれるまでに 'j'は' this.markerStart.length'です - これは2ですか? –