2012-10-18 41 views
0

我正在尝试做一个外部链接,它可以打开标记的信息气泡并将其居中。我希望通过引用我叫clickaway一个div ID做到这一点,这就是我建立,但似乎无法得到它的工作:谷歌地图标记的外部链接

<script> 
    function initialize() { 
    var myLatlng = new google.maps.LatLng(-25.363882,131.044922); 
    var mapOptions = { 
     zoom: 4, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); 

    var contentString = '<div id="content">'+ 
     '<div id="siteNotice">'+ 
     '</div>'+ 
     '<h1 id="firstHeading" class="firstHeading">Uluru</h1>'+ 
     '<div id="bodyContent">'+ 
     '<p><b>Uluru</b>, also referred to as <b>Ayers Rock</b>, is a large ' + 
     'sandstone rock formation in the southern part of the '+ 
     'Northern Territory, central Australia. It lies 335&#160;km (208&#160;mi) '+ 
     'south west of the nearest large town, Alice Springs; 450&#160;km '+ 
     '(280&#160;mi) by road. Kata Tjuta and Uluru are the two major '+ 
     'features of the Uluru - Kata Tjuta National Park. Uluru is '+ 
     'sacred to the Pitjantjatjara and Yankunytjatjara, the '+ 
     'Aboriginal people of the area. It has many springs, waterholes, '+ 
     'rock caves and ancient paintings. Uluru is listed as a World '+ 
     'Heritage Site.</p>'+ 
     '<p>Attribution: Uluru, <a href="http://en.wikipedia.org/w/index.php? 
title=Uluru&oldid=297882194">'+ 
     'http://en.wikipedia.org/w/index.php?title=Uluru</a> '+ 
     '(last visited June 22, 2009).</p>'+ 
     '</div>'+ 
     '</div>'; 

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


    var name = '#clickaway'; 


    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: 'Hello World!' 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.open(map,marker); 
    }); 

    google.maps.event.addListener(name, 'click', function() { 
     infowindow.open(map,marker); 
    }); 


    } 


    function loadScript() { 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = 'https://maps.googleapis.com/maps/api/js?sensor=false&' + 
     'callback=initialize'; 
    document.body.appendChild(script); 
    } 

    window.onload = loadScript; 
</script> 

回答

2

我认为你要使用addDomListener代替addListener,因为,正如它的名字一样,可以听在DOM对象的事件。请检查您的代码中的sample made,请注意,name变量中的CSS选择器已消失。

+0

非常感谢这个示例和帮助,我非常感谢它 – loriensleafs

1

它不工作的方式,标记是一个javascript对象,它不能被HTML id引用。如果您将标记设为全局,则可以在HTML onclick函数中引用它。

onclick="google.maps.event.trigger(marker, 'click');" 

Another example with a clickable sidebar

+0

非常感谢,当人们可以准确解释为什么有什么问题时,它总是非常有用:) – loriensleafs