2011-08-20 66 views
1

我使用谷歌地圖API V2一個的fancybox,我需要打開一個的fancybox,從信息窗口內。 我想這(但沒有工作):如何打開從的GInfoWindow鏈接

GEvent.addListener(marker1, "click", function() { 
     var cnt = '<div> <a id="fancybox" href="http://www.google.com/">Link</a></div>'; 
    marker1.openInfoWindowHtml(cnt); 

    }); 

我不明白爲什麼這是行不通的,因爲當我做相同的,但不是作爲一個參數(只是在頁面某處的鏈接),它的工作原理:

<a id="fancybox" href="fancybox/example/1_b.jpg"><img src="fancybox/example/1_s.jpg" alt=""/></a> 

要添加花哨的框插件我使用這樣的:當你看到

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript" src="fancybox/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 
<link rel="stylesheet" href="fancybox/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" /> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("a#fancybox").fancybox(); 
}); 
</script> 

所以,問題是,調用看中框時,從內openInfoWin dowHtml(),它不工作。

生病得到一些幫助。


地圖現在是鏈接:http://joostudio.info/test/

正如你所看到的,從底部圖像的fancybox工作得很好,但是當我把它從地圖信息窗口就絕對行不通。

下面是完整的頁面源代碼

<!DOCTYPE HTML> 
<html lang="en"> 
<head> 
<meta charset=utf-8> 
<title>test</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript" src="fancybox/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 
<link rel="stylesheet" href="fancybox/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" /> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("a#fb").fancybox(); 
}); 
</script> 
<script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script> 
<script type="text/javascript"> 
var map; 

function runmap() { 

     var myLatlng = new google.maps.LatLng(43.154541,19.12315); 

     var myOptions = { 
     zoom: 10, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

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

     var infowindow = new google.maps.InfoWindow({}); 

     var marker1 = new google.maps.Marker({ 
      map: map, 
      position: new google.maps.LatLng(43.145086,19.090633), 
     }); 

     google.maps.event.addListener(marker1, "click", function() { 
      infowindow.setContent('<a class="fb" href="fancybox/example/1_b.jpg"><img src="fancybox/example/1_s.jpg" alt=""/></a>'); 
      infowindow.open(map, marker1); 
     }); 

} 
</script> 

</head> 

<body onload="runmap()"> 
<div id="map_canvas" style="width: 972px; height: 500px"></div> 
</br> 
<a id="fb" href="fancybox/example/1_b.jpg"><img src="fancybox/example/1_s.jpg" alt=""/></a> 
</body> 
</html> 

我怎麼能簡單地從谷歌地圖V3標誌調用的fancybox?

非常感謝

回答

0

我覺得你的問題是,包括HTML信息窗口中顯示您的鏈接不「存在」的時候您設定的fancybox。

我想你可以通過提供一個DOM節點,而不是用HTML字符串解決這個問題。只需創建一個帶有鏈接的隱藏div,您想要顯示並且它應該可以工作。

0

陶然成一個類似的問題我自己,這是很難讓一個事件要堅持到谷歌地圖中的元素,我都嘗試的fancybox和彩盒,但我得到了兩個相同的結果。我的解決方案是使用和良好的老onclick直接在元素上,所以像這樣:

<a href="your url" onclick="$.fancybox.open({href:'your url'}); return false;">link</a> 

希望這可以解決您的問題。