Dan*_*man 3 javascript google-maps listener dom-events
我想为每个生成的标记添加一个Listener事件,这样当您单击标记时,您将被重定向到永久链接URL.使用下面的代码,每个标记的永久链接值都是相同的(它是最后一个值).我已经阅读过关闭问题,这似乎就是我所拥有的.我真的没有得到我看过的例子.
有人可以看看我的代码并指出我正确的方向吗?任何帮助是极大的赞赏!
downloadUrl("http://localhost/map/generatexml.php", function(data) {
var xml = parseXml(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var permalink = markers[i].getAttribute("permalink");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = new google.maps.Marker({map: map,position: point,icon: icon.icon,shadow: icon.shadow,title: name});
google.maps.event.addListener(marker, 'click', function() {self.location.href = permalink;});
}
Run Code Online (Sandbox Code Playgroud)
Poi*_*nty 11
试试这个:
for (var i = 0; i < markers.length; ++i) {
// ... like what you have already ...
(function(permalink) {
google.maps.event.addListener(marker, 'click', function() {self.location.href = permalink;});
})(permalink);
}
Run Code Online (Sandbox Code Playgroud)
通过在每次迭代中创建一个带有"永久链接"值副本的新词法范围,您的处理程序应该更好地工作.