2012-12-19 34 views
20

क्रोम फेंक त्रुटि: अपरिभाषित, की विधि 'setData' को कॉल नहीं कर सकता है I window.event के बराबर नहीं है (यह संपत्ति डेटा ट्रांसफर नहीं है); दोनों में बहुत बड़ाjquery html 5 dragstart .on ('dragstart', function (e) {}) e.dataTransfer.setData() काम नहीं करता

मुझे क्लिक ईवेंट में लगभग बराबर दोनों मिलते हैं।

मैंने http://code.jquery.com/jquery-latest.js का उपयोग किया।

मैं ड्रैग सुविधा का उपयोग नहीं करता, मुझे बस पता होना चाहिए क्यों। यह एचटीएमएल 5 में नई सुविधा है, अभी भी इसके पीछे jquery है? या jquery टीम इसका समर्थन नहीं करना चाहती ?? या किसी अन्य कारण

+0

क्या आप कृपया अपने कोड का उपयोग कर सकते हैं? – PhearOfRayne

उत्तर

50

कॉलबैक फ़ंक्शन में आपको मूल घटना पर एक jQuery wrapper मिलता है। originalEvent उत्तीर्ण तर्क की संपत्ति का उपयोग करें:

$('...').on('dragstart', function (event) { 
    event.originalEvent.dataTransfer.setData('...', '...'); 
}); 

पीएस तत्व को खींचने के लिए draggable="true" विशेषता सेट करना न भूलें।

+0

आपको बहुत बहुत धन्यवाद। क्यों jQuery सिर्फ मूल घटना को कॉलबैक नहीं करता – zsytssk

+2

@zsytssk यह क्रॉस-ब्राउज़र अनुमानित सामग्री और व्यवहार प्रदान करने के लिए किया जाता है। इसे पढ़ें http://api.jquery.com/category/events/event-object/ –

+0

'event.dataTransfer.setData()' काम करेगा, यदि jQuery – rizwaniqbal

2

jQuery अपने स्वयं के ईवेंट ऑब्जेक्ट बनाता है, और इसमें डेटा ट्रांसफर अभी तक नहीं है। यह इवेंट ऑब्जेक्ट में डेटा ट्रांसफर जोड़ता है।

$ .event.props.push ('डेटा ट्रांसफर');