当前位置: 首页 > 知识库问答 >
问题:

jQuery点击不工作时交付通过谷歌标签管理器

百里业
2023-03-14

当Google Tag Manager提供JQuery on click功能时,该功能不起作用。

我已经研究了这些问题,并将我的代码包装在一个文档中,并使用了更新后的版本。在('click',function(){})语法上,它仍然不起作用。

为什么这个jQuery点击功能不工作?

jQuery onhtml没有对动态插入的超文本标记语言元素进行触发?

Google标记管理器:事件跟踪不工作

我试图添加一个jQuery点击功能发送数据到谷歌分析。

当有人点击带有一类信息的锚定标签时。我使用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>

这是我用来获取span文本值的代码。

在某些页面上,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 tag Manager将其部署为自定义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中的规则在所有页面上都被触发,我已经将其更改为事件等于gtm.dom并且GTM调试器声称标记正在被触发。

我在调试器中注意到的一件事是,它在结束脚本标记上做了一些奇怪的语法高亮显示。突出显示/脚本

为什么onclick侦听器在通过GTM交付时失败?

共有1个答案

戴高远
2023-03-14

我决定改变我选择元素的方法

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

$("body").on("click", ".info",function(){
 类似资料:
  • 我正在尝试做一个简单的标记,用于测量元素被单击的次数。 我遇到了困难,所以我想找一个视频来帮助我,因为标签管理器的布局已经改变了。 我在Udemy上遵循以下免费教程 https://www.udemy.com/google-tag-manager-advanced/ 特别是第8章按钮点击——这是一个免费的章节。它告诉我设置以下选项: 标签配置: 谷歌分析

跟踪ID:{{Tracking ID}}

  • 我正在实施谷歌标签管理器为Android应用程序V4由我的营销团队要求为未来使用,我从来没有在GTM网站,所以我在这方面很天真。 我已经根据官方网站上的说明创建了帐户、容器和标签。我已经将tag manager与google analytics tracking id链接。我已经根据网站上的说明在我的应用程序中编写了代码,并将容器下载到原始文件夹中。 当我运行我的应用程序时,它会在logcat中给

  • 我正在尝试学习如何在一个新网站上整合谷歌分析和定制事件跟踪。在研究它之后,我似乎无法理解Google Tag Manager和仅仅编写自定义事件跟踪代码之间的区别和关系。 Google Tag Manager是否只是一种更简单的跟踪信息的方法,而无需编写JS?

  • 我正在一个客户的网站上设置谷歌标签管理器,但我在启动点击事件标签时遇到了麻烦。 我已将触发器设置为在按钮的CSS选择器上触发。 按钮本身有一些子元素,包括svg图标。单击svg时,单击会在数据层中注册,但不会触发标记。标记仅在我选择按钮本身时激发。 我还尝试在我自己的脚本中删除附加到这些按钮的事件侦听器,以防或阻止了它,但这并没有改变任何事情。 我的理解是,GTM侦听文档中出现的点击事件。如果是这

  • 我有一个按钮,它有填充,但它是在一个跨度标签包装。我正在使用作为谷歌标签管理器中的触发器。 因此,如果我现在在DOM中单击span而不是按钮元素,那么span是它是被单击的元素,所以现在它不会得到id="gtm-id",因为它不是被单击的元素。 如何让谷歌标签管理器冒泡并从它的包装父元素中获取数据?

  • 我必须在Magento网站上设置谷歌标签管理器,该网站上已经有谷歌分析跟踪。主要目标是通过谷歌标签管理器和通用分析来取代所有旧的跟踪。 我想知道实现这一目标的最佳途径。 在第一阶段,是否有可能保持现有的谷歌分析跟踪,同时设置谷歌标签管理器?例如,我希望能够在标签管理器中设置再营销活动。 还是我必须删除网站上所有相关的谷歌分析代码,并在谷歌标签管理器界面中创建新标签? 提前谢谢