Skip to main content
 首页 » 编程设计

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

2025年05月04日175artech

我正在使用 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); 
  } 
}