2017-05-28 67 views
0

盼望的答案全部结束,试着读seperatly但找不到答案..谷歌标签管理器 - 一个点击的div的存储ID /按钮

我有一个网站,在其谷歌代码管理工具来实现,我需要提取点击按钮(或其父)的id。

这是我的代码:

function(){ 
 
$(document).ready(function(){ 
 
    var editid; 
 
    $('div.uk-button').click(function() { 
 
    editid = $(this).attr('data-id'); 
 
}); 
 
return editid; 
 
}); 
 
}

谢谢!

+0

这是否在GTM的自定义JavaScript变量中? –

+0

你需要展示你的元素如何放置在HYML中。有时点击元素可能会返回外部容器,因为css问题,它不会让你获得id在上面提到的答案中提到@sdhaus – Tushar

回答

0

您可以删除外部函数和代码,如下所示。

$(document).ready(function() { 
       $('div.uk-button').click(function() { 
        var editid; 
        editid = $(this).attr('data-id'); 
        alert(editid); 
       });      
      }); 
+0

由于这是GTM,我试图避免'alert'函数..当我将其更改为“返回”时 - 我得到的是未定义的。当然,谢谢您的回答:) –

+0

您可以使用变量editid来提取id。你不应该从这个事件处理程序返回它的值。 – yatz

+0

恐怕它只返回undefined ..:\ –

0

嘿它看起来像你可能没有赶上文档就绪回调的返回值。

function testfunc() { 
$(document).ready(function(){ 
    var editid = 'this is the return value'; 
return editid; 
}); 
} 
testFunc() 
"returns undefined" 

我猜你可能会想设置:

例如,由于的$返回没有被包含函数返回(文件)。就绪()回调这个返回undefined在GTM中创建一个自定义的JavaScript变量。您仍然可以使用准备好的文档来确保元素存在,但返回的值需要由外部函数返回以便将其传递到变量中。

所以,你的例子应该如下工作:

function(){ 
 
var editid; 
 
    $(document).ready(function(){ 
 
    $('div.uk-button').click(function() { 
 
     editid = $(this).attr('data-id'); 
 
    }); 
 
    }); 
 
return editid; 
 
}

+0

感谢您的回答,但是我恐怕它会返回undefined,我想有些东西会阻止网站上的返回函数。 –

1

最简单的方法是创建以下自定义JavaScript变量:

function(){ 
    return $({{Click Element}}).attr('data-id'); 
} 

这将返回数据 - 所有事件(包括点击)的id属性。

将此变量附加到相关事件标记,并使用click类包含uk-button作为触发器。

+0

感谢您的回答,但是我猜想网站本身有问题,只返回undefined:\ –

相关问题