高德地图API之DOM事件+自定义事件

高德地图API之DOM事件+自定义事件

AMap.event.addDomListener() 绑定事件

AMap.event.removeListener() 解绑事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>map</title>
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=ce3b1a3a7e67fc75810ce1ba1f83c01a"></script> 
    <style>
        *{margin:0;padding:0;list-style: none;}
        #container {width:100%; height: 100%;top:0;left:0;position: absolute; }  
        #panel{position: fixed;width:280px;top:10px;right:10px;background-color: #fff;}
        #box{position: absolute;top:20px;right:20px;width:100px;height:50px;background-color: #fff;z-index:10;}
    </style>
</head>
<body>
    <div id="container"></div> 
    <div id="box">
        <button id="btn1">绑定事件</button>
        <button id="btn2">解除绑定</button>
    </div>

    <script>
        var map=new AMap.Map("container",{
            zoom:11,
            center:[121.549792,29.868388],
            resizeEnable:true//不开启则无法触发resize事件
        });

        var lis1=AMap.event.addDomListener(btn1,"click",function(){
            map.zoomIn();
        }) 

        AMap.event.addDomListener(btn2,"click",function(){
            AMap.event.removeListener(lis1);
        }) 

        

    </script>    
</body>
</html>

 

 

自定义事件

1、使用 AMap.event.addListener() 或者 on 来进行绑定

2、使用 emit 方法进行事件派发

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>map</title>
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=ce3b1a3a7e67fc75810ce1ba1f83c01a"></script> 
    <style>
        *{margin:0;padding:0;list-style: none;}
        #container {width:100%; height: 100%;top:0;left:0;position: absolute; }  
        #panel{position: fixed;width:280px;top:10px;right:10px;background-color: #fff;}
        #box{position: absolute;top:20px;right:20px;width:100px;height:50px;background-color: #fff;z-index:10;}
    </style>
</head>
<body>
    <div id="container"></div> 

    <script>
        var map=new AMap.Map("container",{
            zoom:11,
            center:[121.549792,29.868388],
            resizeEnable:true//不开启则无法触发resize事件
        });

        var count=0;
        
        function _myfn(){
            console.log("使用AMap.event.addListener绑定事件");
            //触发count
            map.emit("count",{count:count+=1});//第二步
            
        }
        function _count(){
            console.log(count);//第四步
        }

        AMap.event.addListener(map,"click",_myfn);//第一步

        //on监听变量的改变
        map.on("count",_count);//第三步

        

    </script>    
</body>
</html>