下面的示例可以工作,但是当我尝试传递一个参数并在函数中使用this
不起作用时。如何在google.maps.event.addListener中使用此工具
工作:
google.maps.event.addListener(markers[i], 'click', showInfoWindow);
function showInfoWindow() {
var service_marker = this;
service.getDetails({placeId: service_marker.placeResult.place_id},
function(place, status) {
if (status !== google.maps.places.PlacesServiceStatus.OK) {
return;
}
});
}
当我试图传递参数service_obj
用下面的代码。它不起作用,并显示错误Uncaught TypeError: Cannot read property 'place_id' of undefined
。
google.maps.event.addListener(markers[i], 'click', showInfoWindow(service_obj));
function showInfoWindow(service_obj) {
var service_marker = this;
service.getDetails({placeId: service_marker.placeResult.place_id}, //error here
function(place, status) {
if (status !== google.maps.places.PlacesServiceStatus.OK) {
return;
}
});
}
我相信this
是不是指的实例markers[i]
了。我对此很新,所以对术语错误感到抱歉。如果有人能够帮助我,或者让我朝着正确的方向发展,那将是非常棒的。
可能重复[谷歌映射addDomListener函数参数](http://stackoverflow.com/questions/27791921/google-map-adddomlistener-function-parameter) – geocodezip
[如何使用Google地图事件侦听器传递变量并提交表单](http://stackoverflow.com/questions/21273986/how- google.maps.event.addDomListener(window,'google-map-event-listener-to-pass-a-variable-and-submit-a-form /) – geocodezip
加载',初始化);“是什么意思?](http://stackoverflow.com/questions/30960231/what-does-google-maps-event-adddomlistenerwindow-load-initialize-mean) – geocodezip