Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 谷歌分析事件跟踪集成。还有谁能找到更好的解决办法吗?_Jquery_Events_Tracking - Fatal编程技术网

Jquery 谷歌分析事件跟踪集成。还有谁能找到更好的解决办法吗?

Jquery 谷歌分析事件跟踪集成。还有谁能找到更好的解决办法吗?,jquery,events,tracking,Jquery,Events,Tracking,我还没有在完整的生产环境中对此进行测试,但jQuery的这个小片段似乎为我提供了一个很好的方法,可以将带有可自定义类名的链接解析为等效的google analytics事件跟踪代码 这对你有用吗?有什么我能做得更好的吗 jQuery(function(){ $("a.track").each(function(){ var obj = $(this); //provide scope obj.data("href", obj.attr("href"

我还没有在完整的生产环境中对此进行测试,但jQuery的这个小片段似乎为我提供了一个很好的方法,可以将带有可自定义类名的链接解析为等效的google analytics事件跟踪代码

这对你有用吗?有什么我能做得更好的吗

jQuery(function(){
        $("a.track").each(function(){
    var obj = $(this); //provide scope
            obj.data("href", obj.attr("href")); 
    obj.data("target", obj.attr("target")); 

    obj.attr({"target": ""}); 
            obj.attr({"href": "#" + obj.data("href") }); 

            obj.click(function(){
                var find = {c: "cat_", a:"action_", l:"label_", d:"data_"}; //define your class prefixes
                var p = {};
                $.each(obj.attr('class').split(/\s+/), function(i,v){
                     $.each(find, function(a, b){
                        if(v.indexOf(b) == 0){ p[a] = v.replace(b, "").replace("__", " "); } //double underscore converted to space
                        });
                    });                
                track(p); Log("tracking...");
                if(obj.data('target') == "_blank"){
        var newWindow = window.open(obj.data("href"), '_blank');
        newWindow.focus();          
        }
        else{ window.location = obj.data("href"); 
        }


        });

            });

        function track(i){
            if(i==undefined || !i["c"] || !i["a"]){Log("Both the 'category' and 'action' are required to track events!"); return;}
            var d = {c: "Category", a:"Action", l:null, d:null}; //set default values
            var p =  $.extend(d, i); //merge function data with defaults                
            _gaq.push(['_trackEvent', p.c, p.a, p.l]);
        }

 function Log(x){try{console.log(x);}catch(e){}}
    });

这似乎是一个合理的方法。如果它对你有用,就用它。

我写了这篇文章,并且一直在用它来跟踪我的所有事件: