谷歌地图在点击事件中获取发件人元素

时间:2013-12-05 07:42:05

标签: 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;
        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。有没有解决方案?

1 个答案:

答案 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
    }