Javascript 谷歌地图在点击事件中获取发送者元素
我想在单击时获取元素,比如说标记。鼠标单击事件不发送发件人的任何对象。 我知道这可以通过以下方式实现:Javascript 谷歌地图在点击事件中获取发送者元素,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我想在单击时获取元素,比如说标记。鼠标单击事件不发送发件人的任何对象。 我知道这可以通过以下方式实现: var locMarker = new google.maps.Marker({ map : map, icon : icon, position : point }); locMarker.id = (i + 1); locMarker.clubID = clubid;
var locMarker = new google.maps.Marker({
map : map,
icon : icon,
position : point
});
locMarker.id = (i + 1);
locMarker.clubID = clubid;
locMarker.clubName = clubname;
google.maps.event.addListener(locMarker, 'click', function(evt) {
console.log(evt);
console.log(locMarker);
});
但是这样我只能得到evt
,而不是整个marker对象,在这里我可以访问marker对象,但是如果我在其他地方声明click event函数,比如:
google.maps.event.addListener(locMarker, 'click', this.locationMarkerOnClick);
然后我只得到evt,而不是markerObject。有什么解决办法吗?使用关键字
this
:
(function() {
var locMarker = new google.maps.Marker({
map: map,
icon: icon,
position: point
});
locMarker.id = (i + 1);
locMarker.clubID = clubid;
locMarker.clubName = clubname;
google.maps.event.addListener(locMarker, 'click', this.locationMarkerOnClick);
})();
function locationMarkerOnClick(evt) {
console.log(this); // get (show in console) the marker itself
console.log(evt); // show the evt as expected
}
你想得到什么?我知道确切的问题是什么…我想在我的案例中获得
locMarker
对象你的意思是,你想在地图上获得标记吗?哦,我完全忘记了。这在回调函数中不适用于arrow函数。还有别的办法吗?