Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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 不使用jquery($(“a.zone1”)在类上单击。单击(函数(){})_Javascript - Fatal编程技术网

Javascript 不使用jquery($(“a.zone1”)在类上单击。单击(函数(){})

Javascript 不使用jquery($(“a.zone1”)在类上单击。单击(函数(){}),javascript,Javascript,我想发送谷歌分析事件,点击特定类的链接而不使用jquery 类似于 <script type="text/javascript"> $("a.zone1").click(function() { ga('send', 'event', 'button', 'visit', 'click_visit_zone1'); var href = $(this).attr('href'); window.open(href, '_self'); return fa

我想发送谷歌分析事件,点击特定类的链接而不使用jquery 类似于

    <script type="text/javascript">
$("a.zone1").click(function() {
     ga('send', 'event', 'button', 'visit', 'click_visit_zone1');
  var href = $(this).attr('href');
  window.open(href, '_self');
  return false;
});
$("a.zone2").click(function() {
  ga('send', 'event', 'button', 'visit', 'click_visit_zone2');
  var href = $(this).attr('href');
  window.open(href, '_self');
  return false;
});
</script>

$(“a.zone1”)。单击(函数(){
ga(“发送”、“活动”、“按钮”、“访问”、“单击访问”区域1”);
var href=$(this.attr('href');
window.open(href,'u self');
返回false;
});
$(“a.zone2”)。单击(函数(){
ga(“发送”、“事件”、“按钮”、“访问”、“单击访问”区域2”);
var href=$(this.attr('href');
window.open(href,'u self');
返回false;
});

每个.zone都有大约10个链接,

我想你的意思是使用香草javascript。你可以这样做

var elem = document.getElementsByClassName('zone1')[0];
//note that this function returns an array 
//even if there is only one element with that class name

elem.addEventListener('click', function(){
  ga('send', 'event', 'button', 'visit', 'click_visit_zone1');
  window.open(elem.href, '_self');
  return false;
})
你可以用

onclick=functionName()

在纯JavaScript函数的元素中。

如果需要所有








下面的
将是执行您请求的操作的纯Javascript方法

document.querySelector("a[class^='link']").addEventListener('click',function(ev){
    var index = this.attributes['key'].value;
    var link_name = "click_visit_link"+index;
    ga('send', 'event', 'button', 'visit', link_name);
    var href = this.attributes['href'].value
    window.open(href, '_self');
    return false;
});
请注意,最好像上面列出的那样设计一个通用事件监听器,而不是为页面上的所有此类链接单独创建一个事件监听器。(现在可能有10个,但将来可能会增加。您不想再次编写同一段代码。)

这一行基本上会选择所有锚元素,这些锚元素有一个与之关联的类,并且以“list”开头

一旦拥有了所有这些元素,就可以通过Javascript的addEventListener函数将事件侦听器添加到所有这些元素中

document.querySelector("a[class^='link']").addEventListener('click',function(ev){
在listener函数中,您可以通过多种方式获取所选元素的索引。我已经在每个链接元素上使用了一个额外的属性,即“key”,对其进行了演示

    var index = this.attributes['key'].value;
    var link_name = "click_visit_link"+index;
    ga('send', 'event', 'button', 'visit', link_name);
基本上,您可以从键属性读取链接索引,并使用它创建要发送到Google Analytics的自定义事件文本,然后读取href属性以打开链接

您还可以探索检索索引的其他方法

下面的JS提琴可能会有助于玩。
谢谢大家的帮助

我就是这么做的, 请毫不犹豫地复习以帮助我进步

window.onload = function() {
  var anchors = document.getElementsByTagName('a');
  for(var i = 0; i < anchors.length; i++) {
      var anchor = anchors[i];
      anchor.onclick = function() {
        if (this.className == 'click_visit_zone1' || this.className == 'click_visit_zone2'){
          ga('send', 'event', 'button', 'visit', this.className);
        }
      }
  }
}
window.onload=function(){
var archors=document.getElementsByTagName('a');
对于(var i=0;i

堆栈溢出不是一个免费的代码编写服务。请尝试一次,一旦你遇到了一个特定的问题你的尝试。如果你不愿意尝试编写自己的代码,请考虑雇用一个程序员代替。如果这是关于谷歌分析,那么这需要发生在现有的代码,是常见的。我在事后补充道。非常感谢你的帮助和解释。
window.onload = function() {
  var anchors = document.getElementsByTagName('a');
  for(var i = 0; i < anchors.length; i++) {
      var anchor = anchors[i];
      anchor.onclick = function() {
        if (this.className == 'click_visit_zone1' || this.className == 'click_visit_zone2'){
          ga('send', 'event', 'button', 'visit', this.className);
        }
      }
  }
}