【问题标题】:Google Maps v3 InfoBox Add Event ListenerGoogle Maps v3 InfoBox 添加事件监听器
【发布时间】:2011-06-27 14:08:07
【问题描述】:

我有一个带有 20 个标记的 Google 地图 (v3)。我有一个单独的 InfoBox 实例,该实例填充了一个 div,其中包含将框填充为 innerHTML 的文本。

我希望能够点击信息框并导航到另一个页面,但我无法获取信息框或其中的 div 来响应点击事件。

我已尝试添加事件侦听器,也已尝试添加 domListener,但都无法正常工作。

这是我的代码中的一些 sn-ps

//setting up the infobox

    var infobox = new InfoBox({
           disableAutoPan: true
          ,isHidden:false
          ,pixelOffset: new google.maps.Size(-10, -10)
          ,closeBoxURL: ""
          ,pane: "mapPane"
          ,enableEventPropagation: true
        });

    //setting up the div

    var boxText1 = document.createElement("div");
        boxText1.id = "boxText1";
        boxText1.className = "labelText";
        boxText1.innerHTML = title1;//this is created earlier

    //the marker event listener - the marker and coordinates are also set up earlier
       google.maps.event.addListener(_marker1, 'click', function() { 
       infobox.content_ = boxText1;
       infobox.position_ = mkLatLng1;
       infobox.open(map);
    });

      //so far everything ok. When the user clicks the marker the infobox pops up - but.....

    google.maps.event.addDomListener(boxText1,'click',function(){ alert('clicked!') });//doesn't work

我尝试了多种其他选择,但它们都是在黑暗中拍摄的。在信息框上监听点击事件的最佳方式是什么?

谢谢

【问题讨论】:

  • 小十字会关闭信息框吗?
  • 您的信息框的文本可以包含 html 对吗?因此,您可以在其中创建一个 div,并监听该 div 上的点击。
  • 没有小十字架。你在考虑信息窗口吗?
  • 信息框里面确实有一个 div,我一直在尝试监听点击它,但没有运气。
  • 是的,我正在考虑信息窗口。哦!

标签: google-maps


【解决方案1】:

问题解决了。在信息框选项中,您必须确保拥有

pane: "floatPane" 

不是

pane: "mapPane"

正如我所拥有的那样。现在工作正常。

Google Docs 说的很有趣

Set the pane to "mapPane" if the InfoBox is being used as a map label.

他们没有说的是,如果您希望地图标签可点击,则不能使用此选项。

【讨论】:

  • 就我而言,我不得不从floatPane切换到mapPane
猜你喜欢
  • 2015-11-23
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多