- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的网络应用程序使用以下弹出覆盖插件在屏幕上的弹出窗口中显示配置文件内容:
http://vast-eng.github.io/jquery-popup-overlay/
我的问题与我在弹出窗口中使用的 Google map - 标记信息窗口有关。
当我尝试关闭信息窗口时,弹出窗口也消失了。
这是错误的!我没有立即明白为什么要这样做。
如果找不到解决方案,我可以禁用或隐藏 X,但我不想这样做。
以下链接中的“where”部分向您展示了问题所在:
http://www.zwoop.be/dev/#list/bars/1
编辑事件参数为以下事件监听器返回“未定义”:
google.maps.event.addListener(self.marker.infowindow, "closeclick", function(e)
{
console.log(e);
});
谢谢
编辑2这是一个说明问题的快速 fiddle :
http://jsfiddle.net/462HF/
最佳答案
当您在谷歌地图的信息窗口中单击“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);
}
};
}
关于javascript - 谷歌地图信息窗口closeclick事件(函数参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109181/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!