Después de colocar un archivo en un div
en Firefox, la página web se redirigirá a este archivo. Intenté detener esta propagación utilizando el e.preventDefault()
de jQuery en el controlador drop
, y fallé.¿Cómo detener la redirección después del evento `drop`?
Ver this demo, dejando caer un archivo en #test
no volverá a dirigir la página web, pero cayendo en #test1
voluntad, quiero saber por qué. ¿Debo vincular siempre los controladores a dragenter
, dragover
, dragleave
y drop
para evitar la propagación después de drop
?
actualización:
he encontrado algunos consejos sobre cómo html5doctor:
para decirle al navegador podemos caer en este elemento, todo lo que tenemos que hacer es cancelar el evento dragover. Sin embargo, dado que IE se comporta de manera diferente, nosotros necesitamos hacer lo mismo para el evento dragenter.
y Mozilla claims:
Un oyente para los eventos
dragenter
ydragover
se utilizan para indicar destinos de colocación válidos, es decir, lugares en los elementos arrastrados pueden ser dejados .
Pero pruebo this demo en Firefox, #test
obras y #test1
no lo hace, parece Mozilla ha cometido un error, y html5doctor es correcto: Firefox necesita dragover
sólo para hacer drop
trabajo.
Ahh, encontrado uno. 'Un oyente para los eventos dragenter y dragover se usa para indicar destinos válidos' https://developer.mozilla.org/En/DragDrop/Drag_Operations#Specifying_Drop_Targets. Pero mi demostración funciona sin 'dragenter': http://jsfiddle.net/mKtn2/6/ – Rufus
¡Gracias! Esto me estaba volviendo loco en Chrome –