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

94
Vistas
Eventlistener se dispara en todo el documento

Tengo un problema en mi código Javascript con eventlistener. El detector de eventos (clic) se dispara sobre todo el documento y no solo sobre el elemento específico.

archivo externo:

 function $(selector){ const self = { element: document.querySelector(selector), on: (event, callback) => { document.addEventListener(event, callback) } } return self; } function coy(){ let _this = this; this.Text = (element) => { $(element).on('click', function(){ alert(document.getElementById(element).value); }); } }

En la página

 <input type="text" id="text"/> coy.Text('text');

Espero que alguien pueda ayudarme.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Que extraña pregunta.

  1. Está agregando el detector de eventos al document en la línea 5
  2. La función constructora no sigue las convenciones de nomenclatura. Además, ¿por qué quieres conservar this que no tiene el método text() ?
  3. El método no es estático, por lo que debe crear una instancia de Coy antes de poder llamar a text() en él.
  4. Está pasando el argumento de "text" al método coy.text() , pero parece que está esperando un selector porque usa ese argumento en una llamada de la función $ .
  5. Haces algún tipo de jQuery pirata extraño, pero luego, justo después de definir esa función, aún decides usar document.querySelector

 const $ = (selector) => { return { element: document.querySelector(selector), on: function (event, cb) { this.element.addEventListener(event, cb); }, }; }; class Coy { constructor() { this.text = (element) => { $(element).on('click', () => alert($(element).element.value)); }; } } const coy = new Coy(); coy.text('input[type="text"]');
 <input type="text" />

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