Javascript 谷歌地图信息窗口关闭点击事件(函数参数)

Javascript 谷歌地图信息窗口关闭点击事件(函数参数),javascript,jquery,google-maps-api-3,overlay,infowindow,Javascript,Jquery,Google Maps Api 3,Overlay,Infowindow,我的web应用程序使用以下弹出覆盖插件在屏幕上的弹出窗口中显示配置文件内容: 我的问题与我在弹出窗口中使用的谷歌地图标记信息窗口有关。 当我试图关闭信息窗口时,弹出窗口也会消失。 这是错误的!我不知道它为什么要这样做。 如果我没有找到解决方案,我可以禁用或隐藏X,但我不想这样做 以下链接中的“where”部分显示了问题: 编辑 事件参数为以下事件侦听器返回“未定义”: google.maps.event.addListener(self.marker.infowindow, "closecl

我的web应用程序使用以下弹出覆盖插件在屏幕上的弹出窗口中显示配置文件内容:

我的问题与我在弹出窗口中使用的谷歌地图标记信息窗口有关。
当我试图关闭信息窗口时,弹出窗口也会消失。
这是错误的!我不知道它为什么要这样做。
如果我没有找到解决方案,我可以禁用或隐藏X,但我不想这样做

以下链接中的“where”部分显示了问题:

编辑 事件参数为以下事件侦听器返回“未定义”:

google.maps.event.addListener(self.marker.infowindow, "closeclick", function(e)
    {
        console.log(e); 
    });
谢谢

Edit2 这里有一个快速的提琴来说明这个问题:

当您在谷歌地图的信息窗口中单击“X”时,弹出覆盖插件中的模糊功能将被调用,这就是为什么整个弹出窗口将关闭。以下是jquery.popupoverlay.js文件中的代码:

if (options.blur) {
            blurhandler = function (e) {
                if (!$(e.target).parents().andSelf().is('#' + el.id)) {
                    methods.hide(el);
                }
            };
        }
“X”是一个图像,它的
parents()
只返回到InfoWindow div,而不是popup div。因此,它将调用
methods.hide(el)
并关闭弹出窗口

可能有更好的方法来确定它是否被点击,但将其更改为以下选项会起作用。它只检查目标的img源:

if (options.blur) {
            blurhandler = function (e) {
                if (!$(e.target).parents().andSelf().is('#' + el.id) ) {
                    if(!($(e.target).attr('src') === 'http://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png'))
                        methods.hide(el);
                }
            };
        }

我相信未定义的是正确的。你希望那里有什么?尝试创建一个带有弹出窗口、地图和信息窗口的JSFIDLE,然后我们可能会提供进一步的帮助。我曾希望通过stopPropagation防止事件冒泡到父元素。下面是一个说明问题的提琴:哇,真奇怪。我还不明白为什么会发生这种情况……这个问题很棘手,很烦人。顺便说一句,我注意到我将“map”作为参数传递给fiddle中的initialize函数。这显然是个错误。我很快就编好了小提琴,但问题还是一样。我正在构建的应用程序基于backbone.js。感谢您的帮助!我遵循了你的指导方针,在标签上写了一个条件。没有img会触发隐藏,我不确定img的来源是否永远都是一样的<代码>如果(!($(e.target).prop(“标记名”)=='IMG'))您解决了我的问题,谢谢!