2012-04-30 15 views
5

मैं कुछ खींचें/ड्रॉप कार्यक्षमता पर काम कर रहा था और मानक रीढ़ रास्ते के माध्यम से घटनाओं संलग्न किया गया था:बैकबोन की घटना ओबीजे में संपत्ति क्यों गुम है?

events: { 
'dragenter': 'dragEnter', 
'dragend': 'dragEnd' 
...., 
..... 
} 

मैं अपने समारोह में देखा है कि event उद्देश्य यह है कि इसे में पारित हो जाता है में उल्लिखित कुछ गुण शामिल नहीं है एचटीएमएल 5 spec।

विशेष रूप से, dataTransfer ओबीजे गायब है।

मैंने demonstrate my issue पर एक त्वरित डेमो बनाया। लॉग में इसे देखने के लिए बस उस पर एक फ़ाइल या कुछ खींचें।

मेरा सवाल यह क्यों है? मैंने documentation को देखा है और इसे ढूंढने के लिए प्रतीत नहीं होता है।

+0

यह देखने के लिए बैकबोन परत को निकालने का प्रयास करें कि समस्या jQuery में है या नहीं: '$ (" # dom-element ")। बाइंड (" ड्रैगेंटर ", फ़ंक्शन (ईवेंट) {console.log (" event " , घटना);}); ' – fguillen

+0

@fguillen हाँ काम करता है, नियमित जेएस घटना बाइंडिंग भी काम करते हैं। मैं सिर्फ उत्सुक था कि यह क्यों हो रहा है –

+0

मुझे नहीं पता, बैकबोन ऐसा लगता है कि यह jQuery ईवेंट बाध्यकारी में प्रतिनिधि है, [इस कोड को देखें] (https://github.com/documentcloud/backbone/blob/master/backbone .js # एल 1237-1254), इसलिए बैकबोन की इवेंट सिस्टम को jQuery की घटनाओं के सिस्टम के रूप में ठीक काम करना चाहिए:/ – fguillen

उत्तर

12

आप रीढ़ घटनाक्रम उपयोग कर रहे हैं चाहते हैं, रीढ़ की चोटी पर एक परत डालता है वास्तविक घटना। यदि आप मूल ईवेंट तक पहुंचना चाहते हैं तो आपको इसका उपयोग करना होगा: event.originalEvent

मूल में आपको डेटा ट्रांसफर मिलेगा।

+2

यह स्वीकार किए गए एक से बेहतर जवाब है – fuzzyvagina

0

रीढ़ की घटनाओं वास्तव में अपने डोम पुस्तकालय (jQuery, zepto ...) के लिए घटनाओं के लिए बाध्य है ताकि आप jQueryUI लोड करना चाहिए अगर आप खींचने योग्य घटनाओं

+0

हालांकि यह सच है कि यह उन डीओएम मैनिपुलेटर्स का उपयोग करके ईवेंट को बाध्य करता है, बस जोड़कर jqUI समस्या को ठीक नहीं करता है, कम से कम नहीं मेरे परीक्षण में –

+0

चूंकि डेटा ट्रांसफर मूल है, इसलिए आप इसे अपने कॉलबैक के माध्यम से एक्सेस कर सकते हैं: 'dragEnter: function (e) {dt = e.originalEvent.dataTransfer}' तो यह है कि मैं घटनाओं को बाध्यकारी करके jQuery – drinchev

+0

आह पर बाध्य करता हूं। 'OriginalEvent' अस्तित्व में भी एहसास नहीं हुआ था। –

संबंधित मुद्दे