老师,为什么我只能一次,再点第二次就不会变地方了,li点击
来源:4-2 地图搜索(2)
慕桂英1352525
2021-07-08 23:18:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.wrap{
width:900px;
height:900px;
margin:0 auto;
position:relative;
}
#container {
width:900px;
height: 900px;
margin:0 auto;
}
input[type='text']{
position:absolute;
left:504px;
top:31px;
}
ul{
position:absolute;
left:464px;
top:36px;
background:white;
width:200px;
}
li{
width:200px;
list-style-type:none;
border-left:1px solid black;
border-right:1px solid black;
}
li:first-of-type{
border-top:1px solid black;
}
li:last-of-type{
border-bottom:1px solid black;
}
</style>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=e0518a145a65b2ceff33e4fbd171e3ab"></script>
</head>
<body>
<div id="container"></div>
<input type="text" id='insert' >
<ul id='sheet'></ul>
<script>
var map=new AMap.Map('container',{
zoom:11
});
AMap.plugin('AMap.Autocomplete',function(){
insert.oninput=function(){
if(this.value==''){
return;
}
sheet.innerHTML='';
new AMap.Autocomplete().search(this.value,function(status,data){
console.log(data.tips)
for(var i=0;i<(data.tips).length;i++){
var a=document.createElement('li');
a.innerHTML=data.tips[i].name;
a.P=data.tips[i].location.Q;
a.R=data.tips[i].location.R;
sheet.append(a);
a.onclick=function(){
map.setCenter([a.R,a.P])
}
}
})
}
});
</script>
</body>
</html>
1回答
好帮手慕言
2021-07-09
同学你好,每次循环时,都会给a.P、a.R重新赋值,点击时拿到的是最后一次赋值的P、R,所以会出现同学所说的情况。建议:在点击事件中使用this,如下:
也就是拿到当前点击的R和P。
祝学习愉快~
相似问题