Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
Interacción de eventos entre JQuery + Pure JS

Estoy escribiendo un complemento que eventualmente se usará en diferentes sitios. El complemento se comunica con el resto de la página en función de los eventos. Hasta aquí todo bien.

Ahora aquí está el truco: algunos sitios existentes usan JS puro para escuchar y enviar eventos, algunos usan JQuery. El complemento en sí no debe usar jQuery (por diferentes razones), sino solo JS puro. Entonces, el objetivo es básicamente escuchar y enviar eventos similares a jQuery sin jQuery.

¿Cómo pueden trabajar juntos los eventos JS puros y los eventos jQuery, especialmente con datos personalizados adjuntos al evento?

 Dispatcher Listener Event Triggered Event Data Transmitted JS JS yes yes (event.detail) JS jQuery yes no jQuery JS no no jQuery jQuery yes yes (payload)

Aquí está el codepen: https://codepen.io/st_h_/pen/WNMYPBQ

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

JQuery tiene su propia capa de eventos encima de Vanilla, por lo que no es realmente posible capturar eventos de JQuery en Vanilla JavaScript.

Una opción es usar JQuery para escucharlos y repetirlos como eventos DOM normales, que es exactamente lo que hace jquery-events-to-dom-events .

Pero entonces todavía estás usando JQuery, un poco...

about 4 years ago · Juan Pablo Isaza Relatório

0

Gracias por vincular un codepen a tu código :D

Lo primero que debe hacer es "convertir" su elemento jQuery en uno "JS puro". Al hacer un .get(0) , ahora puede usar la función dispatchEvent con un CustomEvent que estaríamos haciendo con el valor de entrada como la opción de detail , realmente necesita ser detalle y no valor .

 $button.bind("click", () => { const event = new CustomEvent('update', { detail: $input.val() }); $h1.get(0).dispatchEvent(event); });

Y luego, el único cambio que necesitaría hacer en su oyente uniforme sería usar la propiedad detail en lugar de value .

 _h1.addEventListener("update", function(e){ this.innerText = e.detail || "no event.detail" });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda