第69行代码为上面会报错
来源:5-4 自由编程
一路向蓝
2019-04-25 15:54:21
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript"
src="https://webapi.amap.com/maps?v=1.4.14&key=5ac64dd2f8f358f0779db94b0ae45c92&plugin=AMap.Autocomplete"></script>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
#container {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
#setZoomNode {
width: 280px;
position: absolute;
z-index: 99;
right: 20px;
top: 50px;
border: 1px solid black;
box-shadow: 0 0 5px black;
background-color: #fff;
}
#searchNode {
width: 280px;
position: absolute;
z-index: 99;
right: 20px;
top: 20px;
}
.amap-icon img {
width: 25px;
height: 25px;
}
</style>
</head>
<body>
<div id="container"></div>
<div id="searchNode">
<script type="text/javascript">
var map = new AMap.Map("container", {
zoom: 11,
center: [116, 39.8]
});
var marker = new AMap.Marker({
icon: "https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", //标记的图标
position:[116, 39.8]
})
map.add([marker])
map.setDefaultCursor("pointer");
map.on("click", function (e) {
map.remove([marker])
var marker = new AMap.Marker({
icon: "https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", //标记的图标
position: [e.lnglat.lng, e.lnglat.lat], //标记的坐标
})
// marker.setMap(map);
map.add([marker]);
})
</script>
</body>
</html>
用全局变量不会报错 可是我搞不懂为什么第一次必须是全局变量 我的理解是不是全局第一次点击的时候是不会报错的 第二次才会 难道不对嘛 请老师解惑!!!!!!!!!!!
1回答
同学你好,因为这里事件函数中有同名的局部变量,就不会去向上获取外部的变量了,所以就会报错了。
就好像我们如下例子,函数中的a会是undefined哦,因为函数中有声明的同名变量。所以不会去访问还是外的。而同学的这个项目中,因为是undefined,所以在使用就报错了哦。
同学也可以参考如下,在函数中输出下marker的值哦,会是undefined哦。
希望能帮助到你,欢迎采纳。
祝学习愉快!
相似问题