クリックリスナーが添付されたマーカーが付いたWebページにGoogleマップがあります。
問題: localhostでマップ マーカーをクリックすると、すべてが意図したとおりに機能します。ただし、サーバーにアップロードしてライブバージョンを試した後、マーカーをクリックするとエラーが発生しますUncaught TypeError: Cannot read property 'listing_id' of undefined
。
どちらもとが定義されていることをconsole.log
示しています...json
i
Console.log 出力
[ オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト , オブジェクト ]
私: 48
キャッチされていない TypeError: 未定義のプロパティ 'listing_id' を読み取ることができません
なぜこうなった?
JS コード
$.getJSON(......., function(json) {
for(var i = 0; i < json.length; i++) {
(function(i) {
google.maps.event.addListener(markers[json[i].listing_id], 'click', function() {
console.log('json: ' + json);
console.log('i: ' + i);
console.log('json[i].listing_id :' + json[i].listing_id);
// Mark currently opened marker
markers[json[i].listing_id].setIcon(base_url + 'images/template/markers/listing_black.png');
//...
});
})(i);
}
});