【问题标题】:Adding event listener to infowindow Google Maps v3将事件侦听器添加到 infowindow Google Maps v3
【发布时间】:2016-10-19 12:28:13
【问题描述】:

我尝试为信息窗口添加一些侦听器,例如:

//works
google.maps.event.addListener(markerInfoWindow, "closeclick", function()
{
    console.log('trigger close');
});

//doesn't work
google.maps.event.addListener(markerInfoWindow, "click", function()
{
    console.log('trigger close');
});

我错过的文档中是否有 infoWindow 的事件列表,或者是否有其他方法可以完成任务?

其实问题是我想创建一个事件监听器来关闭mouseout上的infoWindow

google.maps.event.addListener(markerInfoWindow, 'mouseout', function(){
    console.log('trigger close');
    self._setInfoWndClosed();
});

self._setInfoWndClosed()closeclick 事件的上下文中正常工作。最后我发现实际上监听器并不能正常工作。

【问题讨论】:

    标签: javascript google-maps google-maps-api-3


    【解决方案1】:

    信息窗口没有记录的“单击”或“鼠标悬停”事件:唯一的documented events on an google.maps.InfoWindow(目前)是:

    活动

    closeclick 参数:无

    单击关闭按钮时会触发此事件。

    content_changed 参数:无

    当内容属性改变时触发此事件。

    domready 参数:无

    当包含 InfoWindow 的内容附加到 DOM 时会触发此事件。如果您正在动态构建信息窗口内容,您可能希望监视此事件。

    position_changed 参数:无

    当位置属性改变时触发此事件。

    zindex_changed 参数:无

    当 InfoWindow 的 zIndex 发生变化时会触发此事件。

    您可以在 InfoWindow 的内容上添加“单击”和“鼠标悬停”事件的侦听器。

    【讨论】:

      【解决方案2】:

      如此链接所示:

      https://gist.github.com/thebouv/38f91f81675aad85f15d

      您可以将“domready”事件侦听器添加到您的信息窗口。一旦进入回调,您可以通过 id 将事件侦听器附加到任何信息窗口元素(使用标准的“addEventListener”)。 “onclick”方法要好得多,但在我的情况下效果不佳,因为我使用的是 react。

      【讨论】:

        【解决方案3】:

        为了在 infowindow 中添加监听器,我的工作方式是这样的..

            google.maps.event.addListener(infowindow, 'domready', function() {
               $('.classname').click(function(){
                   //my function code                     
            });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-04
          • 2014-12-29
          相关资源
          最近更新 更多