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.
Que extraña pregunta.
document en la línea 5this que no tiene el método text() ?Coy antes de poder llamar a text() en él."text" al método coy.text() , pero parece que está esperando un selector porque usa ese argumento en una llamada de la función $ .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" />