首页 > 解决方案 > Datalayer not getting push on click event?

问题描述

I m having trouble pushing datalayer to gtm on click event. But datalayer gets properly pushed on a load of the page but not on click. below is my code

    $('.load-test-div').on("click", function () {
      //console.log('Called properly');
      dataLayer.push({
        'event': 'display more',
      });
    });

I have manipulated code in a different way still it's not pushed. For testing, I m using the "Tag Manager" addon of chrome. Is there are any setting to capture click event in google tag manager. Please help!

标签: google-tag-manager

解决方案


没有看到更多我只能猜测。例如,这有效:https ://jsfiddle.net/emo38rbv/

dataLayer = window.dataLayer || [];
document.querySelector('.load-test-div').addEventListener('click', function(){
    dataLayer.push({
    'event': 'display more',
  });
  alert('this has pushed to the dataLayer: '+JSON.stringify(dataLayer[dataLayer.length -1]));
});

问题可能是:

  • 在加载 jquery 之前调用您的函数。
  • dataLayer 尚未声明
  • DOM 未准备好(查询选择器找不到元素)
  • 运行函数时该元素不存在

推荐阅读