Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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
Javascript 跟踪链接的正确方式';点击_Javascript_Jquery - Fatal编程技术网

Javascript 跟踪链接的正确方式';点击

Javascript 跟踪链接的正确方式';点击,javascript,jquery,Javascript,Jquery,我正试图找到最详尽/兼容的解决方案来跟踪我网站中的一些链接 实际上,我有以下代码: $(".article-content a").each(function() { $(this).click(function() { // Tracking code here }); }); 关于真实用户重定向处理有什么建议吗? 我想我们必须首先排除右键点击? 还要确保Ctrl单击、鼠标滚轮单击、触摸事件、键盘导航等。。。是否正确处理以触发,例如GA事件?制作如下内容 $(

我正试图找到最详尽/兼容的解决方案来跟踪我网站中的一些链接

实际上,我有以下代码:

$(".article-content a").each(function() {
    $(this).click(function() {
        // Tracking code here
    });
});
关于真实用户重定向处理有什么建议吗? 我想我们必须首先排除右键点击?
还要确保Ctrl单击、鼠标滚轮单击、触摸事件、键盘导航等。。。是否正确处理以触发,例如GA事件?

制作如下内容

$('.asdfasdf').mousedown(function(e) {
    switch (e.which) {
        case 1:
            //Left Mouse button pressed
            break;
        case 2:
            //Middle Mouse button pressed
            break;
        case 3:
            //Right Mouse button pressed
            break;
        default:
            //asdfasdf
    }
});
这里有一些文档:

试试jQuery与。比如:

$('.article-content a').mousedown(function(event){
    var message = 'click';
    if (event.ctrlKey) message += ' ctrl';
    if (event.shiftKey) message += ' shift';

    switch (event.which) {
        case 1:
           message = 'left ' + message;
           break;
        case 2:
           message = 'middle ' + message;
           break;
        case 3:
           message = 'right ' + message;
           break;
    }

    alert(message);
});

使用带参数的函数来处理单击

$(".article-content a").each(function() {
    $(this).click(function(e) {
      if(e.ctrlKey) {
        //Ctrl+Click
      }
      if(e.altKey) {
        //Alt+Click
      }
      ...
    });
});
e
记录到控制台以获取更多信息

您可以收听移动设备的其他事件:
点击、按住、滑动、滑动……

$(".article-content a").on("tap",function(){
  #element is tapped
});

我建议你采用以下方法

  • 将类添加到要跟踪的元素:

      < a class="trackMouseClick" >I want to be tracked onclick< / a >
    
    function mousedownHandler(e){
        console.log('target element: ' + e.target + '\tbutton clicked: ' + e.which);
    }
    
    function tapHandler(e){
        console.log('target element: ' + e.target);
    }
    
    
    $('.trackMouseClick').on('mousedown',function(e){
        mousedownHandler(e);
    }).on('tap',function(e){
        tapHandler(e);
    });
    
  • 添加要跟踪的尽可能多的类和事件处理程序:

      < a class="trackMouseClick" >I want to be tracked onclick< / a >
    
    function mousedownHandler(e){
        console.log('target element: ' + e.target + '\tbutton clicked: ' + e.which);
    }
    
    function tapHandler(e){
        console.log('target element: ' + e.target);
    }
    
    
    $('.trackMouseClick').on('mousedown',function(e){
        mousedownHandler(e);
    }).on('tap',function(e){
        tapHandler(e);
    });
    
  • 主要优点是:

    • 模块化:只需从DOM元素中添加和删除类,就可以添加和删除事件处理程序

    • 解耦:使用类将DOM结构与目标实现的跟踪逻辑分离


    您可能可以检查钥匙码!你的问题太广泛了,有很多选择和可能的解决方案。您应该指定需要跟踪的内容、遇到的问题以及尝试过的内容。这可能有助于您了解这个问题事实上,我希望安全地处理真正的用户重定向。好的,但不是我真正想要的,如何确保我可以处理在(非右键)单击/触摸/键盘选择链接?