谷歌地图 - 跟踪信息窗口内容上的点击事件

时间:2011-11-03 13:09:26

标签: javascript google-maps-api-3 google-analytics

我的谷歌地图代码是:

function initialize(mapdata){
    var LatLng=new google.maps.LatLng(mapdata[0],mapdata[1]);
    var myOptions= {
        zoom:16,
        scaleControl:true,
        streetViewControl:false,
        panControl:true,
        mapTypeControl:true,
        center:new google.maps.LatLng(mapdata[0],mapdata[1]),
        mapTypeId:google.maps.MapTypeId.ROADMAP
    };
    var map=new google.maps.Map(document.getElementById("map"), myOptions);
    document.getElementById("map").style.height="200px";
    document.getElementById("map").style.width="450px";
    var infowindow=new google.maps.InfoWindow();
    var marker=new google.maps.Marker({position:LatLng});
    marker.setMap(map);
    google.maps.event.addListener(marker,'mouseover',function(){
        infowindow.setContent(<div style="text-align:right; font-size:8pt; color:black;">click here<a href="http://www.google.com/"></a> </div>');
        infowindow.open(map,marker);
    });
}

我的问题是如何在信息窗口内容中点击事件后跟踪分析?

提前致谢, 伊雷娜

1 个答案:

答案 0 :(得分:1)

查看analytics Event Tracking Guide

<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>

另请注意,infowindow.setContent(<div...之前'错过了('<div

<强>更新

要在infowindow内的链接上设置onclick事件,您必须使用jquery live事件。这是因为链接不存在,直到我们点击标记显示信息窗口。

所以要在信息窗口的<div>上实现点击事件,你要做的事情如下:

google.maps.event.addListener(marker,'mouseover',function(){
        infowindow.setContent('<div style="text-align:right; font-size:8pt; color:black;" id="some_id_here">click here<a href="http://www.google.com/"></a> </div>');
        infowindow.open(map,marker);
});
$("#some_id_here").live('click', function() {
    alert('click');
});

介意我给了id="some_id_here"

div

如果您有多个同时打开的信息窗口,则需要在重置之前取消绑定直播事件。否则,live('click')事件可能会多次绑定。要做到这一点,你应该这样做:

$("#some_id_here").die('click').live('click', function() {