Dopo aver rilasciato un file in un div
in Firefox, la pagina Web verrà reindirizzata a questo file. Ho provato a interrompere questa propagazione utilizzando jQuery e.preventDefault()
nel gestore drop
e non è riuscito.Come smettere di reindirizzare dopo l'evento `drop`?
Vedi this demo, lasciando cadere un file in #test
non reindirizzare la pagina web, ma cadere in #test1
volontà, voglio sapere perché. Devo sempre associare i gestori a dragenter
, dragover
, dragleave
e drop
per impedire la propagazione dopo drop
?
aggiornamento:
ho trovato alcuni suggerimenti su html5doctor:
dire al browser possiamo cadere in questo elemento, tutto quello che dobbiamo fare è annullare l'evento DragOver. Tuttavia, dal momento che IE si comporta in modo diverso, abbiamo necessario fare la stessa cosa per l'evento dragenter.
e Mozilla claims:
un listener per l'
dragenter
edragover
eventi vengono utilizzati per indicare bersagli a caduta validi, cioè luoghi in cui gli elementi trascinati possono essere eliminato.
Ma io prova this demo su Firefox, #test
opere e #test1
non lo fa, sembra Mozilla ha fatto un errore, e html5doctor è giusto: Firefox ha bisogno dragover
solo a fare drop
lavoro.
Ahh, trovato uno. "Un listener per gli eventi dragenter e dragover viene utilizzato per indicare obiettivi di rilascio validi" https://developer.mozilla.org/En/DragDrop/Drag_Operations#Specifying_Drop_Targets. Ma la mia demo funziona senza 'dragenter': http://jsfiddle.net/mKtn2/6/ – Rufus
Grazie! Questo mi stava facendo impazzire in Chrome –