jquery在通过谷歌标签管理器交付时点击不工作
jquery on click not working when delivered via google tag manager
JQuery点击功能在谷歌标签管理器交付时不起作用。
我已经研究了这些问题,并将我的代码封装在一个准备好的文档中,并使用了更新的.on('click',function(){})语法,但它仍然不起作用。
为什么这个jQuery点击功能不起作用?
jQuery onclick没有启动动态插入的HTML元素?
谷歌标签管理器:事件跟踪不工作
我正在尝试添加一个点击查询功能,将数据发送到谷歌分析。
当有人点击带有一类信息的锚标签时。我使用jquery导航到它与一类市场的同级跨度,并获得它的文本值
由于有多个锚标记具有相同的类,并且我需要是特定的,并且文本值我使用父li标记的属性来查找正确的同级跨度。
这是HTML
<ul class="prices">
<li class="message" style="display: none;">
<div class="ajaxLoader"></div>
<div class="errorLabel" style="display: none;">There are currently no markets available for your selection.</div>
</li>
<li key="MM4.uk.174619476" meetingkey="mm4.uk.meeting.4933626" class="show">
<a href="#" class="info">Info</a>
<span class="markets">Manchester City/Crystal Palace</span>
</li>
<li class="hide" key="MM4.uk.174619477" meetingkey="mm4.uk.meeting.4933626">
<a href="#" class="info">Info</a>
<span class="markets">Crystal Palace/Manchester City (h)</span>
</li>
<li key="MM4.uk.174619478" meetingkey="mm4.uk.meeting.4933626" class="show">
<a href="#" class="info">Info</a>
<span class="markets">Total Goals</span>
</li>
<li key="MM4.uk.174619482" meetingkey="mm4.uk.meeting.4933626" class="show">
<a href="#" class="info">Info</a>
<span class="markets">Corners</span>
</li>
<li key="MM4.uk.174619485" meetingkey="mm4.uk.meeting.4933626" class="show last">
<a href="#" class="info">Info</a>
<span class="markets">Bookings</span>
</li>
</ul>
这是我用来获取跨度文本值的代码。
在某些页面上,li标记的属性发生了更改,因此使用了三元运算符。
$(function() {
$(".info").on("click",function(){
console.log('this runs');
var key = (($(this).parent().attr("key") != undefined) ? $(this).parent().attr("key") :$(this).parent().attr("meetingkey"));
console.log(key);
var text = (($("li[key='" + key + "'] .markets").text() != undefined) ? $("li[key='" + key + "'] .markets").text() : $("li[meetingkey='" + key + "'] a:eq(1)").text());
console.log(text);
var logStr = 'Info Button, Meetings page, ' + text;
console.log(logStr);
});
});
如果我通过控制台部署此代码,则此代码运行良好。然而,当我通过谷歌标签管理器将其部署为自定义HTML标签时,它不起作用,即使代码已经添加到页面中。
通过GTM 交付后出现在页面上的代码
<script type="text/javascript" id="">
$(function() {
$(".info").on("click", function() {
console.log("this runs");
var a = void 0 != $(this).parent().attr("key") ? $(this).parent().attr("key") : $(this).parent().attr("meetingkey"),
a = void 0 != $("li[key'x3d'" + a + "'] .markets").text() ? $("li[key'x3d'" + a + "'] .markets").text() : $("li[meetingkey'x3d'" + a + "'] a:eq(1)").text();
console.log("Info Button, Meetings page, " + a);
ga("send", "event", "Info Button", "Meetings page", a)
})
});
</script>
更新:
GTM中的规则在所有页面上都被激发,我已经将其更改为event equals GTM.dom,GTM调试器声称标记正在被激发。
我在调试器中注意到的一件事是,它在结束脚本标记上进行了一些奇怪的语法高亮显示。橙色突出显示/script>'。我想不出为什么会那样。
为什么onclick监听器在通过GTM交付时会失败?
我通过改变从中选择元素的方法来解决这个问题
$(".info").on("click",function(){
至
$("body").on("click", ".info",function(){
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- jquery在通过谷歌标签管理器交付时点击不工作
- Jquery模态不工作在第二次点击内容通过Ajax交付