2012-08-09 10 views

Respuesta

34

jQuery no pasa el objeto de evento del navegador, pasa el jQuery event object. Puede acceder al objeto de evento original no modificado mediante la propiedad .originalEvent en el objeto de evento jQuery. Entonces puedes proceder como siempre.

Así que en código:

jQuery modelo de eventos:

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

modelo de eventos del W3C:

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

Gracias u tanto para su repetición! lo tengo;) ... quiero votar tu respuesta, pero dice "Vote Up requiere 15 reputación" ¿por qué? :( –

+0

@ user1574766 bueno, uno necesita 15 reputación antes de que puedan comenzar a votar respuestas. Actualmente tienes 11 reputación. – Esailija

+4

gracias. Lo hice :) –

Cuestiones relacionadas