0

这是我的代码:

HTML部分:

<div class="subscribe">
  <a href="#' title="library_membership">Subscribe for a Month</a>
  <a href="#' title="library_membership">Subscribe for a Year</a>
</div>

Javascript:

$js('div.subscribe a').live('click', function(e) {
    var This =  $(this);
    e.preventDefault();
    if(This.html().indexOf("Month") != -1)
        _gaq.push(["_trackEvent", "Subscriptions", "Clicked Month", This.attr( "title" )]);
    else 
        _gaq.push(["_trackEvent", "Subscriptions", "Clicked Year", This.attr( "title" )]);

});

我尝试 ga_debug.js 来确认我的事件是否被推送到谷歌分析并且它们确实出现在 chrome 控制台上。

但是,即使 24 小时后,我对“订阅一年”的点击也没有显示在谷歌分析上。我对“订阅一个月”的点击已显示。谁能帮助我为什么我没有得到谷歌分析的准确数据。

4

1 回答 1

2

清理你的 javascript/jquery,它应该可以工作:

$('div.subscribe a').live('click', function(e) {
    e.preventDefault();
    if ($(this).html().indexOf("Month") != -1) {
        alert("month");
    } else {
        alert("year");
    }

});​

当然,将 替换为alerts您的 GA 代码。

http://jsfiddle.net/8EJMK/

而且,由于live已弃用,您可以使用on.

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。旧版本 jQuery 的用户应该使用 .delegate() 而不是 .live()。

取决于您使用的 jquery 版本:

$('div.subscribe a').on('click', function(e) {
    e.preventDefault();
    if ($(this).html().indexOf("Month") != -1) {
        alert("month");
    } else {
        alert("year");
    }

});​

http://jsfiddle.net/8EJMK/1/

您可能还想更改此设置:

_gaq.push(["_trackEvent", "Subscriptions", "Clicked Month", This.attr( "title" )]);

对此:

_gaq.push(["_trackEvent", "Subscriptions", "Clicked Month", $(this).attr( "title" )]);

This不工作。应该是$(this)

于 2012-09-21T18:40:49.703 回答