Ho un po 'di problema con html5 trascinamento. Non vedo un modo semplice per uscirne. Fondamentalmente ho alcune "scatole" con alcuni altri elementi HTML all'interno. Le caselle genitore sono trascinabili e possono essere rilasciate l'una sull'altra.html5: c'è un modo per impedire ai bambini di interferire con gli eventi di trascinamento
È possibile associare l'evento dragover
sul corpo per gestire il trascinamento dell'intera pagina. Il problema è che quando si trascinano le caselle, a volte l'evento viene attivato sugli elementi figlio e il genitore non riceve affatto questo evento.
C'è un modo semplice per evitare che ciò accada?
Fondamentalmente voglio che l'evento di trascinamento si attivi appena il mouse si trova nell'area della casella di destinazione. Conosco un paio di modi per risolvere questo problema, ma sono davvero brutti e mi chiedevo se forse c'è qualcosa di semplice.
Grazie per i vostri pensieri
Versione corta di quello che sto facendo in codice:
document.addEventListener('dragenter', function(e) {
if (e.target.className == 'candrophere')
// cancel out "e" to allow drop
}, false);
Ma nel mio caso gli elementi figlio stanno prendendo quasi l'intera scatola '.candrophere' in modo che il evento viene quasi mai sparato sul bersaglio corretto (soprattutto quando muovo il mouse più veloce)
Dovresti pubblicare il codice che non funziona, in modo che le persone possano aiutarti. – Nelson
Aggiornato con qualche pseudo-codice senza alcuna distrazione – Marius
Sono stato in grado di risolvere questo problema semplicemente utilizzando l'evento di trascinamento invece dell'evento dragenter –