2017-05-28 47 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:\ –