gpt4 book ai didi

javascript - 在谷歌地图事件函数中发送附加参数

转载 作者:搜寻专家 更新时间:2023-11-01 05:10:44 25 4
gpt4 key购买 nike

我有这个,工作正常:

google.maps.event.addListener(marker, 'rightclick', function(event) {
infowindow.close();
marker.setMap(null);
marker.solucionado = true;
cant_markers--;
cant_solucionados++;
});

但我想这样做:

google.maps.event.addListener(marker, 'rightclick', deleteMarker);

function deleteMarker(marker) {
infowindow.close();
marker.setMap(null);
marker.solucionado = true;
cant_markers--;
cant_solucionados++;
});

marker 目前不在范围内,有办法将 marker 对象作为参数发送吗?

最佳答案

marker 没有超出范围,marker 是范围将执行处理程序的地方。

通过addListener 添加的处理程序的作用域始终是监听器被添加到的对象(addListener 的第一个参数,它是标记 在你的代码中)

只需使用 this 即可访问处理程序内的标记:

function initialize() {

var map = new google.maps.Map(document.getElementById("map-canvas"), {
center: new google.maps.LatLng(0, 0),
zoom: 1
}),
marker = new google.maps.Marker({
map: map,
position: map.getCenter()
});
google.maps.event.addListener(marker, 'rightclick', deleteMarker);

}

function deleteMarker() {
this.setMap(null);
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map-canvas {
height: 100%;
margin: 0;
padding: 0;
}
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3"></script>
<div id="map-canvas"></div>

但是,如果您不想向处理程序传递额外的参数,也可以使用 deleteMarker.call。 (或 deleteMarker.apply)

例子:

function initialize() {

var map = new google.maps.Map(document.getElementById("map-canvas"), {
center: new google.maps.LatLng(1, 2),
zoom: 1
}),
marker = new google.maps.Marker({
map: map,
position: map.getCenter()
}),
var1 = "it ",
var2 = "work's";
google.maps.event.addListener(marker, 'rightclick',
function(e) {
deleteMarker.call(this, //the scope of the handler...the marker
e, //the original event
var1, //additonal argument
var2 //another argument
);
}
);

}

function deleteMarker(event, v1, v2) {
this.setMap(null);
alert(v1 + v2 + '@' + event.latLng)
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map-canvas {
height: 100%;
margin: 0;
padding: 0;
}
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3"></script>
<div id="map-canvas"></div>

关于javascript - 在谷歌地图事件函数中发送附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com