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

106
Vistas
Agregar devolución de llamada con parámetros a elementos agregados dinámicamente en Javascript

Necesito crear muchos controles deslizantes en HTML/Javascript y creé una función para esto:

 function createSliderAt (place, name, min, max, step, value){ let slider = document.createElement("input"); slider.setAttribute ("type", "range"); slider.setAttribute ("id", name); slider.setAttribute ("min", min); slider.setAttribute ("max", max); slider.setAttribute ("step", step); slider.setAttribute ("value", value); slider.addEventListener('input', function(e) { console.log (this.id, this.value); }); let p = document.getElementById (place); p.append(slider); return slider; }

Entonces puedo agregar controles deslizantes:

 let slider1 = createSliderAt ("sliders", "slider1", 0, 100, 0.1, 0); let slider2 = createSliderAt ("sliders", "slider2", 100, 1000, 1, 200); let slider3 = createSliderAt ("sliders", "slider3", 0, 10, 0.1, 3);

Ahora también me gustaría agregar devoluciones de llamada a la lista de argumentos de la función. Las devoluciones de llamada se llaman cuando se cambia el control deslizante, pasando el nuevo valor.

Intenté cambiar el encabezado de función agregando devolución de llamada ...

 function createSliderAt (place, name, min=0, max=100, step=0.1, value=0, callback){

... y luego en el cuerpo de la función agrega:

 slider.addEventListener('input', callback(this.value));

La idea era agregar funciones y luego pasarlas como argumentos al crear un control deslizante. En este estilo:

 function foo (p){ console.log("foo: " + p) } let slider1 = createSliderAt ("sliders", "slider1", 0, 100, 0.1, 0, foo);

Pero obtengo: TypeError no detectado: la devolución de llamada no es una función . Entiendo que en la definición de la function createSliderAt el tipo de argumentos son desconocidos para el código de la función. Pero creo que debería ser posible pasar funciones como argumentos, pero no entiendo cómo.

Leí este y artículos similares (a menudo con setTimeOut) pero no veo cómo se aplica esto a mi caso.

about 4 years ago · Juan Pablo Isaza
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