es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenación de columnas múltiples arrastrables y soltadas sin biblioteca.

Estoy buscando implementar una funcionalidad de ordenamiento arrastrable entre columnas, así como dentro de ellas. He buscado ejemplos en internet que no usen una biblioteca para esto. Me gustaría implementarlo en VueJS, aunque cualquier ejemplo será bienvenido.

Básicamente, debería funcionar como JIRA, donde tienes columnas como “TO-DO” y “EN PROGRESO”, y puedes ordenarlas por prioridad en la misma columna o moverlas a otra.

La razón por la que no quiero utilizar ninguna biblioteca es porque quiero construir mis propias funcionalidades complejas. Tampoco quiero utilizar bibliotecas existentes de Github para modificarlas. ¡Agradecería cualquier sugerencia!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Si desea implementar la funcionalidad de arrastrar y soltar ordenable entre columnas y dentro de una columna, puede hacerlo en VueJS sin usar ninguna biblioteca externa.

    Aquí están los pasos que puede seguir:

    1. Cree un componente principal que contenga todas las columnas.
    2. Cree componentes secundarios para cada columna y pase datos a ellos como props.

    3. En cada componente secundario, use el bucle v-for para iterar sobre la matriz de datos y mostrarla en la columna.

    4. Use el evento dragstart para establecer los datos que desea arrastrar al objeto dataTransfer.

    5. Use el evento dragover para evitar el comportamiento predeterminado y permitir que se suelte el elemento.

    6. Use el evento drop para obtener los datos que se establecieron en el evento dragstart y agregarlos a la nueva ubicación en la matriz.

    7. Use el método splice() para eliminar el elemento de la ubicación original en la matriz.

    8. Use el evento keyup para permitir al usuario reordenar los elementos dentro de una columna.

    9. Use el método splice() para mover el elemento a la nueva ubicación en la matriz.

    Este enfoque le brinda un control completo sobre la funcionalidad y le permite agregar cualquier función adicional que pueda necesitar.

Comments are closed.