Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

178
Visualizações
Vue parece estropear el evento dragend cuando los elementos HTML cambiaron como resultado del arrastre

Estoy trabajando en una aplicación que usa la biblioteca vuedraggable ( https://github.com/SortableJS/vue.draggable.next ). Mis matrices entre las que se pueden arrastrar los elementos se calculan según la propiedad ordenada de una gran matriz reactiva de todas las "tareas".

Cuando arrastra algún elemento, arrastrable lo mueve entre esas matrices "temporales". Eso se detecta y como resultado se edita la propiedad "assignee" de las tareas. Esto da como resultado que la propiedad calculada se recalcule y la interfaz de usuario se actualice. Esto funciona bien. El problema es que probablemente como resultado de este diseño de interfaz de usuario después de arrastrar. Cuando engancho el evento @dragend en un elemento que se puede arrastrar, se dispara en el elemento en lugar de donde el arrastre comenzó a estropear muchas cosas.

Cronología:

 ------- ------- | el1 | | el3 | ------- ------- ------- | el2 | -------
  1. Comienzo a arrastrar el1 debajo de el3
  2. Arrastre los extremos, ambas matrices a partir de las cuales se generan las columnas se recrean (porque son propiedad computada).
  3. @dragend se dispara pero se dispara en el2 en lugar de arrastrar el1

Lo mismo sucede con otros eventos como mouseenter. Desafortunadamente, como tengo mouseenter enganchado a la información sobre herramientas personalizada, hace que esta información sobre herramientas se muestre con datos incorrectos (datos el2 en lugar de el1 donde realmente está el mouse). Este estado permanece hasta que se mueve el mouse (incluso si solo 1px). En ese momento, mouseenter se dispara nuevamente en el1 y se abre la información sobre herramientas correcta.

Desafortunadamente, no sé dónde podría crear una reproducción que podría usar lib arrastrable :-(

Hay un "truco" que ayuda a ocultar este comportamiento. En @dragend establece el indicador que ignora el único @mouseenter en el2. En ese caso, no se muestra nada después de que finaliza el arrastre y solo se abre la información sobre herramientas adecuada cuando se mueve el mouse.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda