【问题标题】:problems with google map displaying images in new window when using fancybox使用fancybox时谷歌地图在新窗口中显示图像的问题
【发布时间】:2010-11-15 15:22:32
【问题描述】:

在显示 KML 文件的内容时,我在使用 fancybox 和 google maps(v3) 时遇到了一些问题。

在显示包含描述的气球时,我有一个图像的缩略图,我想在使用 fancybox 单击时显示该图像。我遇到的问题是,当单击缩略图时,fancybox 会显示,但浏览器也会生成一个显示全尺寸图像的新窗口。

我知道在解析 KML 文件时,任何 href 标记都添加了 target 属性,因此我尝试在地图加载后将其删除,同时我将 fancybox 附加到链接。

我在尝试之前确保地图已加载:即

function updatemap(surveyid){

    var map;

    var myOptions = {
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.HYBRID
    };

    var url = "https://myurl/feed/kml.php?action=survey&id=" + surveyid;

    map = new google.maps.Map(document.getElementById("googlemap"), myOptions);

    var kmlLayer = new google.maps.KmlLayer(url);

    kmlLayer.setMap(map);

    google.maps.event.addListener(map, "tilesloaded", function(){
        attachFancyBox();
    });


}

attachFancyBox() 函数如下所示。

function attachFancyBox(){

    $("a:has(img)").fancybox({
        "hideOnContentClick":true
    }).removeAttr("target");

}

现在这将适用于 firefox,但其他浏览器(IE7+、safari、chrome)的行为与上述相同。那么有没有一种方法可以在不产生新窗口/标签的情况下实现在fancybox中显示图像??

非常感谢...

【问题讨论】:

    标签: jquery google-maps fancybox kml


    【解决方案1】:

    对不起,我没有时间完全重构你的情况,但可能是因为不是target,可能是因为谷歌地图脚本将click事件绑定到a标签?在附加花式框之前尝试取消绑定所有事件:

    function attachFancyBox(){
      $("a:has(img)").unbind()
        .fancybox({
          "hideOnContentClick":true
        })
        .removeAttr("target");
    }
    

    【讨论】:

    • 很遗憾,这似乎不起作用。问题是它看起来非常随机,因为它“有时”可以与 firefox 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多