Ich habe eine Google Map auf der Webseite mit Markierungen auf, die Click-Listener an sie angehängt hat.Nicht definiert auf Live-Server, aber funktioniert auf localhost
Problem: Auf localhost, wenn ich auf einer Markierung auf der Karte klicken, funktioniert alles wie vorgesehen. Nach dem Hochladen auf den Server und dem Versuch, die Live-Version Version, klicken Sie auf die Markierung verursacht jedoch einen Fehler Uncaught TypeError: Cannot read property 'listing_id' of undefined
.
Beide console.log
zeigt, dass json
und i
definiert ...
console.log Ausgang
[ Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object ]
i: 48
Uncaught TypeError: Cannot read property 'listing_id' of undefined
Warum ist das passiert?
JS-Code
$.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);
}
});
Wenn Sie ein bestimmtes Objekt console.log, ist es eine listing_id Eigenschaft haben? –
Ich habe die ursprüngliche Postleitzahl mit einem dritten 'console.log' aktualisiert. Das 3. 'console.log' erzeugt den gleichen undefinierten Fehler auf dem Live-Server, gibt den korrekten Wert auf dem localhost aus. Rätselhaft ... – Nyxynyx
Wie sieht das Objekt aus, hat es überhaupt irgendwelche Eigenschaften, oder ist es nur die listing_id, die fehlt? –