2012-08-09 10 views

risposta

34

jQuery non passa l'oggetto evento del browser, passa il numero jQuery event object. È possibile accedere all'oggetto evento originale non toccato dalla proprietà .originalEvent nell'oggetto evento jQuery. Quindi puoi procedere normalmente.

Così in codice:

jQuery modello di eventi:

$(document).on("drop dragend dragstart dragenter dragleave drag dragover", function(event) { 
    event.preventDefault(); 
    if (event.type === "drop") { 
     alert(event.originalEvent.dataTransfer.files); 
    } 
}); 

W3C modello di eventi:

function preventDefault(event) { 
    event.preventDefault(); 
} 

function alertFiles(event) { 
    alert(event.dataTransfer.files); 
} 
document.addEventListener("dragstart", preventDefault, false); 
document.addEventListener("dragenter", preventDefault, false); 
document.addEventListener("dragleave", preventDefault, false); 
document.addEventListener("drag", preventDefault, false); 
document.addEventListener("dragend", preventDefault, false); 
document.addEventListener("dragover", preventDefault, false); 
document.addEventListener("drop", preventDefault, false); 
document.addEventListener("drop", alertFiles, false); 
+0

Thank u così tanto per il replay! ho capito;) ... voglio votare la tua risposta ma dice "Vota Up richiede 15 reputazione" perché ?! :( –

+0

@ user1574766 beh, uno ha bisogno di 15 reputazione prima di poter iniziare a fare le risposte. Attualmente hai 11 reputazione – Esailija

+4

grazie. L'ho fatto :) –