2010-08-13 17 views
7

मैं ड्रैग और ड्रॉप एक्शन कर रहा हूं, और जब मैं अपने रास्ते में एक तत्व लेता हूं तो मैं एक तत्व को स्थानांतरित करना चाहता हूं।jQuery: मैं अपने कर्सर के नीचे तत्व कैसे प्राप्त करूं?

var hoverElem = null; 
$('*').hover(function() {hoverElem = this}); 

फिर जब आप कॉल करने के लिए जो भी मूल्य प्राप्त करने के ढंग से काम की जरूरत है, बस का उपयोग hoverElem

संपादित करें:: यह एक कम संसाधन गहन है

उत्तर

9

एक सरल हैक कहने के लिए कुछ करना होगा फोन:

$('*').live('mouseenter', function() { hoverEleme = this; }); 

संपादित करें 2:() .live की वजह से समाप्त किया जा रहा है, तो आप .on का उपयोग करना चाहिए()

$("*").on("mouseenter", function() { hoverElem = this; }); 
+10

प्रत्येक तत्व के लिए माउस हैंडलर को जोड़ने के बजाय (जो 'माउसलेव' पर भी आग लगती है, आपको '$ (' * ') का उपयोग करना चाहिए। लाइव (' माउसेंटर ', फ़ंक्शन() {होवरएलेमे = यह;}); ' यह एक * बहुत * सस्ता है, विशेष रूप से आपको जितने अधिक तत्व मिलते हैं। –

+0

विधिवत ध्यान दिया गया। मुझे लगा कि होवर ने केवल माउसेंटर किया था जब कॉल में पहला फ़ंक्शन था। –

+0

। लाइव को हटा दिया गया है। – moosefetcher

1

मुझे नहीं पता कि कोई मानक तरीका है या नहीं, लेकिन शायद मैं उन सभी तत्वों के लिए "माउसओवर" ईवेंट बांधूंगा जो आप नीचे जा सकते हैं यदि आप उनके ऊपर हैं और फिर यह देखने के लिए परीक्षण करें कि आप हैं या नहीं वर्तमान में एक वस्तु खींच रहा है।

फिर से, मुझे वास्तव में आपका सटीक सेटअप नहीं पता है, लेकिन आप वैश्विक चर var currentlyDragging = false कर सकते हैं, फिर जब आप ड्रैगिंग शुरू करते हैं तो इसे true पर सेट करें। फिर जब आप किसी तत्व पर माउस को अपने रास्ते से बाहर ले जाना चाहते हैं तो आप यह देखने के लिए परीक्षण कर सकते हैं कि आपका currentyDragging चर सत्य है और यदि ऐसा है तो आप इसे स्थानांतरित कर सकते हैं।

बिट जटिल है, लेकिन मैं वास्तव में अपने सिर के ऊपर से इसे करने का कोई अन्य तरीका नहीं सोच सकता। :)

8
$('*').on('mouseenter', function() { hoverEleme = this; }); 

यह एक बहुत सस्ता हर तत्व के लिए एक माउस हैंडलर (जो भी mouseleave पर आग), विशेष रूप से अधिक तत्वों आपको मिल संलग्न तो है।

+0

यह एक बेहतर तरीके से काम करता है, एक के साथ, मुझे गलत 'यह' वापस मिलता है ... – TrySpace

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

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