老师,为什么我只能一次,再点第二次就不会变地方了,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

            height900px;

            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,如下:

http://img.mukewang.com/climg/60e7b5820982e1a805280134.jpg

也就是拿到当前点击的R和P。

祝学习愉快~

0

0 学习 · 6815 问题

查看课程