JS说我有一个未定义的对象.真的需要一些帮助来解决这个问题吗
JS is saying that I have an undefined object. Could REALL use some help figuring this out
今天我的任务是第一次使用Google API创建地图。我在我的网站上设置地图没有问题,这很容易。但由于某种原因,我用json编码的点没有显示出来。它说我的gmap对象是未定义的。我真的需要一些帮助,我一整天都在做这件事!!
function load () {
var map = document.getElementById("map");
if (GBrowserIsCompatible()) {
var gmap = new GMap2(map);
gmap.addControl( new GSmallMapControl() );
gmap.addControl( new GMapTypeControl()) ;
gmap.addControl( new GOverviewMapControl(new GSize(100,100)) );
gmap.setCenter( new GLatLng(42.3313889, -83.0458333), 7 );
} else {
alert("Sorry, your browser cannot handle the true power of Google Maps");
}
}
window.onload = load;
window.onunload = GUnload;
function createMarker(input) {
var marker = new GMarker(input.point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml( input.walkName + input.date + input.address );
});
return marker;
}
function parseJson (doc) {
var jsonData = eval("(" + doc + ")");
for (var i = 0; i < jsonData.markers.length; i++) {
var marker = createMarker(jsonData.markers[i]);
gmap.addOverlay(marker);
}
}
GDownloadUrl("points.json", function(data, responseCode) {
parseJson(data);
});
您正在parseJson函数中使用gmap变量。但它是在load()函数内部声明的。它们不共享范围。只需将gmap声明移到两个函数之外,使其处于两个函数的共同作用域中。
看起来gmap
是在load
函数的范围内定义的。因此,它在引用它的parseJSON
函数中不可用。
相关文章:
- 我根据解决方案按类对
- 元素进行分组,但需要帮助了解它的工作原理
- 我需要帮助来解决一个小问题
- Knockoutjs+Ckeditor需要帮助解决一些问题
- 需要帮助解决“;总计“;围栏价格计算器的按钮
- javascript中的btoa()可以帮助我解决哪些安全威胁
- node.js nodeschool learnyounode需要帮助理解解决方案的代码
- java脚本我需要帮助来解决一个问题
- 我正在使用JQUERY灯箱,我帮助我解决简单的问题
- 了解使用AngularJS承诺,他们将如何帮助解决这个问题
- 解决可能的严格违规行为(并帮助蝙蝠侠拯救哥谭)
- 移动隐藏菜单适用于jsfiddle,但不适用于在线.任何解决方案都会有所帮助
- 需要帮助来解决滑块 JavaScript 与 Safari 的冲突
- 需要 PHP 中 jQuery 滑块的帮助来解决每个问题
- 可以帮助我解决鼠标事件
- 需要帮助来解决我的Java问题
- JS说我有一个未定义的对象.真的需要一些帮助来解决这个问题吗
- For循环错误,需要帮助解决
- 帮助需要解决jslint错误
- 需要帮助解决模态弹出问题
- 由于Node的异步特性,需要帮助解决问题