2012-08-09 22 views
11

एचटीएमएल 5

event.originalEvent.dataTransfer.files 

और

event.dataTransfer.files 

बीच क्या अंतर है में event.originalEvent.dataTransfer.files और event.dataTransfer.files के बीच का अंतर ???

क्योंकि ड्रैग और ड्रॉप में, दूसरा कोड काम नहीं करता है और यह अपरिभाषित है और मुझे पहले कोड का उपयोग करना पड़ा क्योंकि यह काम करता है!

उत्तर

34

jQuery आपको ब्राउज़र ईवेंट ऑब्जेक्ट पास नहीं करता है, यह jQuery event object पास करता है। आप jQuery ईवेंट ऑब्जेक्ट में .originalEvent प्रॉपर्टी द्वारा मूल अनछुए ईवेंट ऑब्जेक्ट तक पहुंच सकते हैं। फिर आप सामान्य के रूप में आगे बढ़ सकते हैं।

कोड में

तो:

jQuery घटना मॉडल:

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

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

यू पुनरावृत्ति के लिए बहुत बहुत धन्यवाद! मुझे मिल गया;) ... मैं आपका जवाब वोट देना चाहता हूं लेकिन यह कहता है "वोट अप को 15 प्रतिष्ठा की आवश्यकता है" क्यों? :( –

+0

@ user1574766 अच्छी तरह से, किसी को जवाब देने से पहले 15 प्रतिष्ठा की आवश्यकता होती है। आपके पास वर्तमान में 11 प्रतिष्ठा है। – Esailija

+4

धन्यवाद। मैंने इसे किया :) –