我正在编写一个jQuery插件,用于使用Google Analytics跟踪页面上的事件。我有一个简单的循环元素,它将事件处理程序附加到每个元素。它非常适合跟踪div
等点击次数。
$('a.tracked').tracking();
(function( $ ) {
$.fn.tracking = function() {
return this.each(function() {
$(this).on('click', function(){
ga('send', 'event', 'category', 'action', 'label', 'value');
});
});
};
}( jQuery ));
跟踪没有在链接上工作,所以我添加了一个测试,它会延迟默认行为,直到跟踪回调发生:
(function($) {
$.fn.tracking = function() {
return this.each(function() {
$(this).on('click', function(event){
if ($(this).prop('tagName')=='A'){
event.preventDefault();
var url = $(this).attr('href');
ga('send', 'event', 'category', 'action', 'label', 'value', {'hitCallback':function(){
document.location = url;
}});
}else{
ga('send', 'event', 'category', 'action', 'label', 'value');
}
});
});
};
}( jQuery ));
也很棒!但是,我想跟踪"更聪明"已有事件处理程序的链接,例如灯箱或网络应用程序链接。