Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

278
Views
La función .closest devuelve 'indefinido' en Google Tag Manager pero funciona en la consola

Con la ayuda de nuestro desarrollador, hemos adjuntado atributos de datos a todos los elementos que queremos rastrear, pero con el siguiente código, el clic aterriza en la etiqueta a, pero quiero obtener el atributo de datos de la etiqueta p.

 <main id="content" class="page__content"> <div class="app-container page__content__wrapper"> <div class="page_content_block"> <p data-mng="mian-forgot-primary"> <a href="https://homepage.com">Text about the homepage</a> </p> </div> </div> </main>

La siguiente función funciona en la consola (navegador Brave y Chrome). Estoy simulando un clic como lo haría un usuario en el sitio, al hacer clic en el enlace. La función .closest() busca el DOM para la etiqueta p y desde allí debe extraer el atributo data-mng. En la consola, obtengo el resultado. Quiero el valor "mian-forgot-primary".

 $0.addEventListener('click', (e) => { e.preventDefault(); const a = e.target.closest('p'); const mng = a.getAttribute('data-mng'); console.log(mng); });

Luego intenté implementarlo como una función en Google Tag Manager como una variable javascript personalizada con la siguiente función. Al obtener una vista previa en Google Tag Manager y hacer clic en el enlace (la simulación de antes), obtengo el valor 'indefinido' y no veo por qué no funciona para mí.

Mirando la documentación, pensé que la función .closest() "atraviesa el elemento y sus padres hasta que encuentra un nodo que coincide con la cadena de selección proporcionada" .

 function(){ var gtmMng = event.target.closest('p').getAttribute('data-mng'); return gtmMng; }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

GTM no le brinda la exposición típica al evento que obtiene en sus devoluciones de llamadas de eventos normales. En su lugar, debe ir a sus variables GTM integradas y habilitar la opción Click Element var. Luego, puede usarlo como usaría event.target en el caso del desencadenador de clic.

También use el depurador de variables de vista previa de GTM para asegurarse de que no está ejecutando problemas de tiempo. Sin embargo, es poco probable con las reglas de clic, por lo que el código a continuación debería funcionar después de habilitar la var Elemento de clic.

 function(){ return {{Click Element}}.closest('p').dataset.mng; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!