google跟踪代码管理器gtm无法给相同class元素绑定click事件埋点解决
Google 跟踪代码管理器是一个跟踪代码管理系统 (TMS),可以帮助您快速轻松地更新网站或移动应用上的跟踪代码及相关代码段(统称为“代码”)。将一小段跟踪代码管理器代码添加到项目后,您可以通过网页界面安全轻松地部署 Google Analytics(分析)和衡量代码配置。
在通过clickClasses给相同class的多个元素块绑定click事件埋点的时候,发现无法实现,通过gtm管理器调试发现,点击的时候,显示的是里层被点击的元素,而我们想要绑定整个外层的大块元素,所以这时候我们只能自己写js实现了。
1、新建触发器,绑定页面加载事件,到某个页面

2、绑定事件代码,这里发现,正常addEventListener默认是冒泡事件,给父元素绑定click事件,点击子元素的某个元素会冒泡的顶级元素,但是这里并不能冒泡上去,所以暂时兼容办法,采取DOM0级事件绑定,onclick方式,但是这样有一个弊端,就是如果该元素本身原来如果有click事件,会被覆盖,所以如果是使用这种方法,一定要避开已经有绑定click事件的元素。

google跟踪代码管理器gtm无法给相同class元素绑定click事件埋点解决的更多相关文章
- 代码管理器 TFS2013
多人开发代码管理器肯定是少不了的,出于项目需要在服务器上装了tfs2013用于代码管理,既然用vs进行开发自然选择微软自家的tfs.记录下安装和使用起来的过程. 安装 TFS2013(Team Fou ...
- 完美解决--用VS中的Git做代码管理器,与他人共享代码
1.创建代码仓库,这里说一下为什么要创建仓库,Git不能够作为源代码管理器,vs中自带的也只能够在本地进行管理,要和他们共享的话必须要有服务器端去存储代码,类似于SVN,它就有客户端和服务器端,这里推 ...
- [资源]--完美解决--用VS中的Git做代码管理器,与他人共享代码
1.创建代码仓库,这里说一下为什么要创建仓库,Git不能够作为源代码管理器,vs中自带的也只能够在本地进行管理,要和他们共享的话必须要有服务器端去存储代码,类似于SVN,它就有客户端和服务器端,这里推 ...
- Visual Studio 代码管理器svn插件下载
环境:Visual Studio 2010 Visual Studio的svn插件叫做VisualSVN,可自行到VisualSVN官网上下载相应版本,也可以通过vs中找到相关插件. ps:vs其他的 ...
- JS事件调试 - 查找HTML元素绑定的事件以及绑定代码所在位置
日常的网页开发调试工作中,经常需要知道指定的某个网页元素绑定了哪些事件以及绑定代码的位置,下面介绍三种用来跟踪页面中的事件的方法. 1.使用firefox调试 我们可以使用firefox的debug工 ...
- Using NuGet without committing packages to source control(在没有把包包提交到代码管理器的情况下使用NuGet进行还原 )
外国老用的语言就是谨慎,连场景都限定好了,其实我们经常下载到有用NuGet引用包包然而却没法编译的情况,上谷歌百度搜又没法使用准确的关键字,最多能用到的就是nuget跟packages.config, ...
- MFC小程序------01 代码管理器
1.代码入库: 2.代码查找: 3.查看全部代码: 4.程序设置: 自己学习MFC写的一个小程序,当中还有很多功能还待完好,比方数据库的导入功能还没有写,但导出功能是能够用的,查找算法也不是非常好,还 ...
- 代码管理——如何连接Git Server,下载代码
最近一个项目需要与国外团队合作,而他们的代码在GitLab上,需要使用Git工具连接服务器,对于我这样一个SVN的拥护者,当然很高兴去接受这个工作了(鄙视一下目前单位还使用ClearCase). 但操 ...
- 【NOI2015】软件包管理器
NOI难得的水题,话说还是T2诶……又学到了线段树的一种新的魔性使用 看sxysxy大神的代码才写出来的,sxysxy_orz 原题: Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包 ...
随机推荐
- python 多线程编程之threading模块(Thread类)创建线程的三种方法
摘录 python核心编程 上节介绍的thread模块,是不支持守护线程的.当主线程退出的时候,所有的子线程都将终止,不管他们是否仍在工作. 本节开始,我们开始介绍python的另外多线程模块thre ...
- 爬虫(十):AJAX、爬取AJAX数据
1. AJAX 1.1 什么是AJAX AJAX即“Asynchronous JavaScript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的 ...
- JS---动画函数封装:设置任意的一个元素,移动到指定的目标位置
动画函数封装:设置任意的一个元素,移动到指定的目标位置 <!DOCTYPE html> <html lang="en"> <head> < ...
- render加载vue文件 vue-loader配置
默认webpack无法打包.vue文件,需要安装相关Loader安装 npm install vue-loader vue-template-compiler -D webpack.config.js ...
- mysql存储4字节的表情包数据报异常_Emoji表情包_Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F
本文章转载自:https://www.cnblogs.com/coprince/p/7485968.html 原文如下: 问题描述:从新浪微博抓取消息保存到MySQL数据中,对应数据库字段为varch ...
- C# List与Dictionary相互转换与高效查找
TestModel类定义: public class TestModel{ public int Id { get; set; } public string Name { get; se ...
- .Net Core 项目发布到Linux - CentOS 7(二)用Supervisor守护netcore进程
简介 supervisor可以保证程序崩溃后,可以重新把程序启动起来等相关功能. 安装 yum install -y supervisor 安装好后在/etc/会生成一个supervisord.con ...
- linux下的服务器上传与下载
上传 scp 文件 用户名@服务器ip 服务器保存路径 例如:scp bookmarks_2019_6_24.html root@192.168.0.103:/home 下载 scp 用户名@服务器i ...
- 字符串 string方法
字符串 name = 'ab c dd' i = name.find('a', 1, 3) # 找到返回对应下标 找不到返回-1 print(i) j = name.rfind('d') # 寻找对应 ...
- PHP 生成 UUID 函数
Generate name based md5 UUID (version 3) /** * Generate name based md5 UUID (version 3). * @example ...