如何将事件处理程序绑定到Google Maps V3 API默认PanControl's单击事件

How to bind event handler to Google Maps V3 API default PanControl's click event?

本文关键字:PanControl 默认 事件 单击 API V3 事件处理 程序 绑定 Maps Google      更新时间:2023-09-26

本页介绍Google Maps V3 API的默认控制集:http://code.google.com/apis/maps/documentation/javascript/controls.html#DefaultUI

我有兴趣接管PanControl的点击事件,并将其绑定到我的自定义函数。

例如,当用户单击"向左平移(上/右/下)"UI控件时,不仅会更改贴图的视口,还会调用函数A

正如我所想象的,这样做的一种方法是,监听Map的点击事件并检查它的目标?

关于如何做到这一点,有什么建议/示例(特别有用)吗?

您的假设(听Map的点击事件并检查它的目标)听起来是正确的,因为没有访问控件的实现。

这对我有效(现在):

google.maps.event.addDomListener(map.getDiv(),'click', 
             function(e) 
             {
                var t=e.target,
                    a=[null,'left','right','up','down'];
                if(
                    t.parentNode.parentNode.hasAttribute('controlwidth')
                      &&
                    t.parentNode.childNodes.length==5
                      &&
                    t.parentNode.firstChild.tagName=='IMG'
                      &&
                    t.parentNode.firstChild.src
                         =="http://maps.gstatic.com/mapfiles/mapcontrols3d7.png"
                  )
                  {
                    for(var i=1;i<t.parentNode.childNodes.length;++i)
                    {
                      if(t.parentNode.childNodes[i]==t)
                      {
                        alert('You''ve clicked on 'n>>>'+a[i]+
                              ''nyou may call a function now.');
                      }
                    }
                  }
             });

http://jsfiddle.net/doktormolle/fwgMy/

但它只有在谷歌修改标记之前才有效,这可能是明天。

更好的方法是隐藏平移控件并创建自己的控件。