2010-11-15 2 views
2

У меня возникли проблемы с картами fancybox и google (v3) при отображении содержимого файла KML.проблемы с отображением google-карты в новом окне при использовании fancybox

При отображении воздушного шара, содержащего описание, у меня есть миниатюра изображения, которое я хочу отображать при нажатии с помощью fancybox. Проблема заключается в том, что при нажатии на миниатюру отображается fancybox, но браузер также создает новое окно, отображающее полноразмерное изображение.

Я знаю, что при анализе файла KML любые теги href добавили целевой атрибут, поэтому я попытался удалить его после загрузки карты, в то же время я прикрепляю 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 без появления нового окна/вкладки?

Большое спасибо ...

ответ

0

Извините, у меня нет времени на полную реконструкцию не ваш случай, но может быть причиной не является target, может быть причиной является Google Map сценарий связывает click события a тега? Попробуйте отменить все события, прежде чем прикреплять причудливую бокс:

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

К сожалению, это не сработало. Проблема в том, что он кажется очень случайным, поскольку он «иногда» работает с firefox. –