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

160
Views
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 answers
Answer question

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 Report

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 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!