我想在单击时让元素说标记。鼠标单击事件不发送任何发件人对象。 我知道这可以通过以下方式实现:
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
,而不是整个标记对象,这里我可以访问标记对象,但是如果我在其他地方声明点击事件函数:
google.maps.event.addListener(locMarker, 'click', this.locationMarkerOnClick);
然后我只获得evt
,而不是markerObject。有没有解决方案?
答案 0 :(得分:1)
使用关键字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
}