mag*_*gie 5 javascript google-maps
我想在我的Map中添加动态标记,其中每个都位于经度[i]和纬度[i],我想要在用户点击标记时打开一个弹出窗口,在窗口的url中&ID = ID [i]中.
我尝试使用以下内容:
<script type="text/javascript">
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(48, 2),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
for (var i = 0; i < id.length; i++) {
var position = new google.maps.LatLng(latitude[i],longitude[i]);
marker[i] = new google.maps.Marker({
position: position,
map: map
});
marker[i].setTitle("pv");
google.maps.event.addListener(marker[i], 'click', function() {
window.open('blah.php?id='+id[i],'name','height=1000,width=1000')
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用,因为当点击标记时,函数addListener将被调用,此刻i = id.length
我想要的是标记[0]打开id [0]的窗口,标记[1]的id [1]等...
小智 3
你能尝试更换这个吗 -
google.maps.event.addListener(marker[i], 'click', function() {
window.open('blah.php?id='+id[i],'name','height=1000,width=1000')
});
Run Code Online (Sandbox Code Playgroud)
这样 -
(function (i) {
google.maps.event.addListener(marker[i], 'click', function() {
window.open('blah.php?id='+id[i],'name','height=1000,width=1000')
});
})(i);
Run Code Online (Sandbox Code Playgroud)
将侦听器包装在闭包中将使用该时间点的状态执行它。查看更多详细信息 -在循环中添加“点击”事件侦听器