Javascript 不使用jquery($(“a.zone1”)在类上单击。单击(函数(){})
我想发送谷歌分析事件,点击特定类的链接而不使用jquery 类似于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
<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);
}
}
}
}