为什么不能删去marker1?
来源:5-4 自由编程
soso_crazy
2019-05-11 15:05:36
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.11&key=e22196035aaa10db3b0b6eb1ab64619e&plugin=AMap.Autocomplete"></script>
<style type="text/css">
* {
margin: 0;
padding: 0;
list-style: none;
}
#container {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.amap-icon img {
width: 25px;
height: 34px;
}
</style>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
var map = new AMap.Map('container', {
center: [116.379391, 39.861536],
zoom: 11
});
map.setDefaultCursor('-webkit-grabbing');
var marker = new AMap.Marker({
icon: 'https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
position: [116.379391, 39.861536]
});
marker.setMap(map);
map.on('click', function(e) {
var markerIcon = new AMap.Icon({
size: new AMap.Size(610, 610),
image: './1.png',
imageSize: new AMap.Size(30, 30)
});
var marker1 = new AMap.Marker({
icon: markerIcon,
position: [e.lnglat.lng, e.lnglat.lat],
offset: new AMap.Pixel(-15, -25) //调整点击位置与标记的偏差
});
map.remove([marker, marker1]);
map.add(marker1);
});
</script>
</body>
</html>
为什么只能删去marker而不能删去marker1?
3回答
好帮手慕夭夭
2019-05-12
你好同学, 这里和marker没有关系。参考老师第一次回复,在你点击按钮的时候,marker1已经重新赋值了,不是原来的值了,如果想要删除marker1,就要在点击事件里面先移出marker1 ,然后在重新赋值新的标记。
但是点击添加新标记的时候marker1是不存在的,会报错。所以要在全局下面也定义一个marker1,这样当你添加新的标记,先把之前的标记清除,然后添加新的标记。这样和老师给出的参考答案是一样的逻辑哦。同学的方式是没有办法实现的。不知道同学哪里理解不了,可以详细说一下哦。
祝学习愉快 ,望采纳。
好帮手慕夭夭
2019-05-11
你好同学,按照你的代码逻辑是有问题的,只能说你把全局下面的标记定义成marker1,就像老师给出的建议逻辑是一样的了

所以按照老师第一次回复给出的建议修改就行。祝学习愉快 ,望采纳。
好帮手慕夭夭
2019-05-11
你好同学,因为当你移出marker1之前,marker1已经重新赋值了一个新的标记点,所以它找不到原来的标记点没办法删除,而新的标记点并没有添加所以也没有移出哦。

这里不需要设置两个标记点,如下调整即可:

祝学习愉快 ,望采纳。
相似问题