jquery - 如何延迟 google 分析的 jquery 事件

标签 jquery delegates google-analytics

我正在使用 jquery 将 anchor 的点击记录到谷歌分析。

我有如下代码,用于连接事件:

$(document).delegate("a[rel='mylink']", "Click", function (e) {
//log to google analytics
console.log('tracking link');
_gaq.push(event);
e.preventDefault();         
});

问题在于,href 的执行速度似乎太快,以至于无法触发此事件。

有没有办法延迟href的后续直到事件被触发/完成?

我可以在控制台中看到它一直到“跟踪链接”,但在谷歌分析推送事件完成之前它会继续前进。

任何建议表示赞赏。

最佳答案

Google Analytics 通过请求跟踪像素来记录数据。如您所见,在同一窗口中打开新页面时可以取消请求。

注意:只有在同一窗口中打开链接时才需要延迟。我使用以下的一些变体来实现点击功能:

function(e) {
  _gaq.push(['_trackEvent', ...]);
  if (this.target != '_blank') {
    e.preventDefault();
    var url = this.href;
    setTimeout(function() {location.href = url}, 150);
  }
}

关于jquery - 如何延迟 google 分析的 jquery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13658455/

相关文章:

javascript - 如何从 $ ('input[name=...]' )[...] 获取 $ ('form' ).value();

jquery - 选择选项作为进度条和价格范围

ios - 为什么我不能调用我的 IBOutlet 以便我可以让它成为 XCode 9.3 中的委托(delegate)

ios - 如何为 URLSessionDataTask 分配委托(delegate)?

ios - 单例类加载数据

javascript - 使用 Google Analytics API 创建比较不同日期范围内的数据的图表

javascript - 如何使用setInterval在for循环中追加jquery而不产生无限循环

javascript - 如何使用ajax检查数据库中是否已存在电子邮件?

javascript - Google Analytics _setCustomVar - 我仪表板中的奇怪数据

firebase - 更改 Firebase/Google 分析收集的默认数据