这是我正在添加的监听器 -
var map;
var geocoder;
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(22, 88),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
}
//google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addListener(map, 'click', function(event) {
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'latLng': event.latLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert(results);
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
});
但是它在控制台中生成了这个错误 -
Uncaught TypeError: Cannot read property '__e3_' of undefined
Ke
Ie
R.addListener
(anonymous function)
尝试搜索。但没有解决方案。
答案 0 :(得分:51)
将您的监听器移动到初始化函数中。
答案 1 :(得分:9)
很难说只有一小部分代码,但听起来似乎无法找到“地图”。
您的地图变量不是全局的,或者该代码以某种方式可访问,或者地图未使用以下内容创建:
map = new google.maps.Map(....)
在尝试添加新的单击侦听器之前。
答案 2 :(得分:2)
我不知道这对您是否有问题,因为我们没有看到您链接到谷歌地图库的代码部分,但我刚刚发现我收到此错误的原因来自试图包括“可视化”库。幸运的是我不再需要使用它了。
我有这个:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry,visualization&sensor=true"></script>
并将其更改为:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=true"></script>
我不再收到 e3 错误。
顺便说一句,这个错误对我来说并不一致,我无法弄清楚 如何复制它。我不得不坐在那里一遍又一遍地刷新,直到发生错误。
我希望这有助于某人。
答案 3 :(得分:1)
在异步加载数据时会发生这种情况。您可以通过将document.ready代码包含在ajaxStop函数中来避免这种情况
$().ready(function() {
$(document).ajaxStop(function () {
/* your code here ?*/
});
});
答案 4 :(得分:1)
在我的情况下,全局映射变量已在初始化程序中被覆盖,但我想在另一个函数中使用该全局变量,这导致了问题。
答案 5 :(得分:0)
是的,第二个...... map变量必须在使用之前和之外声明。由于谷歌地图听众无法找到它。
答案 6 :(得分:0)
这样的东西?
var lati,longt; //contains latitude and longitude
func newLatLOng(){
get new value of latLong
initMap();
}
var map = 0;
function initMap() {
if (map ===0)
{
//load first time
lati= 28.5072216;
longt= 77.4971153;
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: lati, lng: longt},
zoom: 13
});
}else
{
var geolocation = { lat:lati,
lng: longt };
google.maps.event.trigger(map, 'resize');
map.setCenter(geolocation);
}
答案 7 :(得分:0)
在我的情况下google.maps.event.addListener(marker, 'click', function() {
标记变量未定义。因而错误。可能对某人有用。