2009-05-20 9 views
8

मोज़िला फ़ायरफ़ॉक्स 3.x "ऑनड्रैग" ईवेंट सुनते समय एक बग लगता है। इवेंट ऑब्जेक्ट ड्रैग किए गए ऑब्जेक्ट की स्थिति की रिपोर्ट नहीं करता है, क्लाइंटएक्स, क्लाइंटवाई और अन्य स्क्रीन ऑफ़सेट शून्य पर सेट हैं। यह काफी समस्याग्रस्त है क्योंकि मैं ड्रैग किए जाने वाले तत्व के आधार पर प्रॉक्सी तत्व बनाना चाहता था और पाठ्यक्रम, क्लाइंटएक्स और क्लाइंटवाई का उपयोग अपनी स्थिति को समायोजित करने के लिए करना चाहता था।फ़ायरफ़ॉक्स पर मेरे "ड्रैग" ईवेंट हैंडलर के अंदर काम करने के लिए क्लाइंटएक्स और क्लाइंटवाई कैसे प्राप्त करूं?

मैं जानता हूँ कि आकर्षक उत्पाद, एचटीएमएल 5 में setDragImage रूप में इस तरह के आसपास नहीं है कि लेकिन मैं एक ब्राउज़र से देशी डीडी के लिए एक सामान्य अमूर्त प्रदान करना चाहते हैं।

दोषपूर्ण कोड:

document.addEventListener('drag', function(e) { 
    console.log(e.clientX); // always Zero 
}, false); 

नोट: यह समस्या अन्य घटनाओं (dragstart, dragover) और MouseMove घटनाओं पर ऐसा नहीं होता है, जबकि किसी चीज़ खींच काटा नहीं जा सकता '।

कृपया मदद करें!

+0

+1। आप जोसे द्वारा दिए गए उत्तर का उपयोग कर सकते हैं। जैसे ही मुझे कुछ समय मिलता है, मैं इससे संबंधित कुछ पता लगाने की भी कोशिश करूंगा। – Kirtan

+0

मुझे एक समाधान मिला, मैंने दस्तावेज़ स्तर पर "ड्रैगओवर" ईवेंट पर एक श्रोता रखा है, अब मुझे सही एक्स और वाई गुण मिलते हैं जिन्हें मैं वैश्विक स्तर पर साझा ऑब्जेक्ट के माध्यम से प्रदर्शित कर सकता हूं। –

+0

वही बग (मेरी राय में) फ़ायरफ़ॉक्स 10 के माध्यम से मौजूद है। पेजएक्स और अन्य समन्वय गुणों के लिए भी यही है। यदि यह इस घटना का हिस्सा नहीं माना जाता है तो इसे अपरिभाषित किया जाना चाहिए, शून्य नहीं? यह बहुत परेशान है।यह जानने के लिए खेद है कि आपको 'ड्रैगओवर' ईवेंट को हैक के रूप में उपयोग करना है, लेकिन कम से कम यह काम करता है –

उत्तर

16

मुझे एक समाधान मिला, मैंने दस्तावेज़ स्तर पर "ड्रैगओवर" ईवेंट पर एक श्रोता रखा है, अब मुझे सही एक्स और वाई गुण मिलते हैं जिन्हें मैं वैश्विक रूप से साझा ऑब्जेक्ट के माध्यम से प्रदर्शित कर सकता हूं। आपके द्वारा छोड़ी गई टिप्पणी के लिए

1

एचटीएमएल 5 में खींचें घटना आज ब्राउज़रों में पूरी तरह से कार्य नहीं है। ड्रैग एन ड्रॉप स्थिति को अनुकरण करने के लिए आपको इसका उपयोग करना चाहिए:

  1. एक सर्वव्यापी घटना जोड़ें, एक var true सेट करें।
  2. एक varmouseup घटना जोड़ें, जो कि var false सेट करें।
  3. कि अगर वर सच है की जाँच एक onmousemove घटना जोड़ें, और अगर ऐसा है, निर्देशांक के अनुसार अपने div चलते हैं।

यह हमेशा मेरे लिए काम किया। यदि आपको किसी भी समस्या का सामना करना पड़ता है, तो फिर से संपर्क करें, मैं कुछ उदाहरण प्रदान कर सकता हूं।

शुभकामनाएं!

0

मैं जानता हूँ कि यह है कि शांत सामान के आसपास ऐसे एचटीएमएल 5 में setDragImage लेकिन मैं के रूप में ब्राउज़रों के बीच देशी डीडी के लिए एक सामान्य अमूर्त उपलब्ध कराना चाहते हैं।

लेकिन कुछ इस तरह करते हैं, न वहाँ की तरह JQuery & Prototype पार ब्राउज़र के लिए उपलब्ध खींचें & ड्रॉप पुस्तकालय हैं?

वरना यदि आप अपना खुद का एक डीडी पुस्तकालय लागू करना चाहते हैं, तो आप उनके तरीकों की मदद लेने या उन्हें विस्तार, के रूप में दोनों पुस्तकालयों वस्तु उन्मुख प्रतिमान का अनुसरण कर रहे हो सकते हैं।

यह ज्यादा समय की बचत होगी।

+1

JQuery और प्रोटोटाइप केवल सिमुलेट डी एंड डी प्रदान करता है जो मैं नहीं देख रहा हूं, मूल डीडी किसी और की तुलना में अधिक मजबूत और तेज है नकली समाधान। –

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

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