Parece que el evento de caída no se activa cuando esperaba.
Supongo que el evento de caída se activa cuando un elemento que se está arrastrando se libera por encima del elemento de destino, pero este no parece ser el caso.
¿Qué estoy entendiendo mal?
$('.drop').on('drop dragdrop',function(){
alert('dropped');
});
$('.drop').on('dragenter',function(){
$(this).html('drop now').css('background','blue');
})
$('.drop').on('dragleave',function(){
$(this).html('drop here').css('background','red');
})
javascript
jquery
events
drag-and-drop
jquery-events
Pelusa leve
fuente
fuente

Respuestas:
Para que el evento de caída ocurra en un elemento div, debe cancelar los eventos
ondragenteryondragover. Usando jquery y su código proporcionado ...Para obtener más información, consulte la página MDN .
fuente
Usted puede conseguir lejos con sólo hacer una
event.preventDefault()en eldragoverevento. Hacer esto disparará eldropevento.fuente
Para que se active el evento de caída, debe asignar un efecto de caída durante el evento de finalización; de lo contrario, el evento de caída nunca se activará:
fuente
event.originalEvent.dataTransfer.dropEffect = "copy"porque jQuery usa el suyo propioeventEsta no es una respuesta real, pero para algunas personas como yo, que carecen de la disciplina para ser coherentes. La gota no se disparó para mí en cromo cuando
effectAllowedel efecto no era el que me había propuestodropEffect. Sin embargo, funcionó para mí en Safari. Esto debe establecerse como se muestra a continuación:ev.dataTransfer.effectAllowed = 'move';Alternativamente,
effectAllowedse puede establecer comoall, pero preferiría mantener la especificidad donde pueda.para un caso en el que el efecto de caída se mueve:
ev.dataTransfer.dropEffect = 'move';fuente