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

130
Vistas
Pase la clase a través de la transferencia de datos de arrastrar y soltar

Tengo una aplicación que tiene varios "widgets" que se pueden arrastrar y soltar en la vista previa del widget. Cada widget tiene su propia clase y estoy buscando una manera de pasar estas clases a los eventos de arrastrar y soltar.

Actualmente, en el evento typeof , paso el tipo de la clase de widget y lo convierto en una cadena:

 const addWidget = (widgetType) => { // widgetBox is the box dragged onto the widget preview to specify the user wants to create this widget const widgetBox = document.createElement("div"); // style widgetBox widgetBox.addEventListener("dragstart", (e) => { e.dataTransfer.setData("widget-type", String(widgetType)); }) } addWidget(TextboxWidget); // TextboxWidget is a class

En el evento de caída en la vista previa del widget, obtengo la cadena de tipo de widget y me veo obligado a verificar manualmente cada widget, lo cual no es ideal:

 element.addEventListener("drop", () => { e.preventDefault(); const widgetType = e.dataTransfer.getData("widget-type"); switch(widgetType) { case String(TextboxWidget): widget = new TextboxWidget(); break; // etc for each widget default: return; } })

Idealmente, me gustaría poder pasar la clase de widget al evento de soltar y luego poder crear una instancia de este modo:

 // dragover const addWidget = (widget) => { const widgetBox = document.createElement("div"); widgetBox.addEventListener("dragstart", (e) => { e.dataTransfer.setData("widget", widget); }) } addWidget(TextboxWidget); // drop element.addEventListener("drop", () => { e.preventDefault(); const WidgetClass = e.dataTransfer.getData("widget"); const widgetInstance = new WidgetClass();
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