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

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

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