javascript 在infowindow Google Maps v3中添加事件侦听器

g0czyy6m  于 2023-05-21  发布在  Java
关注(0)|答案(4)|浏览(153)

我尝试为Info Window添加一些侦听器,如:

//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事件的上下文中正确工作。最后我发现其实倾听者本身并不起作用。

fcipmucu

fcipmucu1#

InfoWindow没有记录的“单击”或“鼠标悬停”事件:目前在google.maps.InfoWindow上记录的事件只有:

活动
closeclick参数:无

单击“关闭”按钮时激发此事件。

content_changed参数:无

当content属性更改时,将激发此事件。

domready参数:无

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

position_changed参数:无

当position属性更改时激发此事件。

zindex_changed参数:无

当InfoWindow的zIndex更改时,将触发此事件。
您可以在InfoWindow的content上添加click和mouseover事件的监听器。

cdmah0mi

cdmah0mi2#

如此链接所示:
https://gist.github.com/thebouv/38f91f81675aad85f15d
你可以添加一个'domready'事件监听器到你的信息窗口.一旦进入回调,您就可以通过id(使用标准的“addEventListener”)将事件侦听器附加到任何信息窗口元素。“onclick”方法要好得多,但在我的情况下效果不好,因为我使用的是react。

3z6pesqy

3z6pesqy3#

对于在infowindow中添加侦听器,我的工作原理是这样的。

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

3htmauhk4#

创建infowindow时,需要向其添加事件侦听器

google.maps.event.addListener(infowindow, 'domready', function() {
    document.querySelectorAll('.infowindow-inner-class').forEach((el) => el.addEventListener("click", function(){
        console.log("clicked item inside infowindow")
    }));
});

请记住,上面的代码假设您在infowindow中有一个HTML元素,该元素具有“.infowindow-inner-class”类

相关问题