Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda