gpt4 book ai didi

javascript - 通过谷歌标签管理器传递时,jquery on click 不起作用

转载 作者:行者123 更新时间:2023-11-28 00:27:55 25 4
gpt4 key购买 nike

由 Google 跟踪代码管理器提供时,JQuery 点击功能无法正常工作。

我已经研究了这些问题,并将我的代码包装在准备好的文档中,并使用了更新的 .on('click', function(){}) 语法,但它仍然不起作用。

Why is this jQuery click function not working?

jQuery onclick not firing on dynamically inserted HTML elements?

Google Tag Manager: Eventtracking not working

我正在尝试添加 jquery on click 函数以将数据发送到 Google Analytics。

当有人点击带有一类信息的 anchor 标记时。我使用 jquery 导航到它的同级跨度以及一类市场并获取它的文本值。

由于存在多个具有相同类的 anchor 标记,并且我需要具体说明文本值,因此我使用父 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);

});
});

如果我通过控制台部署此代码,则它可以完美运行。但是,当我通过 Google 跟踪代码管理器将其部署为自定义 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>'。我不明白为什么它会这样做。

为什么通过 GTM 传递时 onclick 监听器会失败?

最佳答案

我通过改变选择元素的方法来解决

$(".info").on("click",function(){

$("body").on("click", ".info",function(){

关于javascript - 通过谷歌标签管理器传递时,jquery on click 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29301132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com