2011-03-24 14 views
22

मैं एक प्राथमिक ड्रैग को पूरा करने की कोशिश कर रहा हूं। मूसडाउन पर आइटम ड्रैग करना शुरू कर देता है, लेकिन माउस की तरह ही गति पर नहीं, इसलिए जब माउस खिड़की के बाहर होता है तो मैं ड्रैगिंग जारी रखता हूं, लेकिन यदि माउस पेज पर नहीं है तो मुझे माउसअप ईवेंट नहीं मिल सकते हैं।खिड़की के बाहर JQuery माउसअप - संभव है?

मैं अन्य पेज देख सकता हूं इसलिए मुझे पता है कि यह संभव है। किसी भी मदद की सराहना करते हैं।

संपादित करें: उदाहरण के लिए

Vimeo http://vimeo.com/19831216 पर कोई भी वीडियो चलाएं यकीन है कि खिड़की यह ऊपर अंतरिक्ष के साथ अपनी स्क्रीन पर काफी छोटा है, फिर उसे खींचें वीडियो के प्रगति बार छोड़ दिया और सही, अब बाहर कर्सर ले जाने बनाना बाएं/दाएं खींचते समय खिड़की के ऊपरी किनारे - देखें? अब विंडो के बाहर अभी भी माउस बटन जारी करें - ड्रैगिंग समाप्त होता है और वीडियो चल रहा है।

नोट: Vimeo के पास फ़्लैश प्लेयर या HTML5 प्लेयर का उपयोग करने का विकल्प है और यह HTML5 प्लेयर के साथ है।

उत्तर

47

आप वास्तव में mouseup ब्राउज़र की विंडो के बाहर निकल सकते हैं।

यह मेरे लिए कम से कम काम करता है।

$(function(){ 
    $(window).mouseup(function(){ 
     alert('mouse up'); 
    }); 
}); 

http://jsfiddle.net/fFeJ6/

उबंटू मेवरिक पर क्रोम 10 पर कार्य करना।

+6

धन्यवाद, सरल एह? मैं खिड़की के बजाय 'शरीर' का उपयोग कर रहा था। – hooleyhoop

+0

हाँ और यह वास्तव में फ़ायरफ़ॉक्स 4 पर काम कर रहा था, लेकिन फ़ायरफ़ॉक्स को 'चेतावनी() 'को आग लगने के लिए एक तर्क की आवश्यकता होती है और मैं इसे भूल गया। चीयर्स! – thwd

+0

मैंने विंडोज़ और मैक पर परीक्षण किया, यह कोड काम करता है। बस कुछ ब्राउज़रों के लिए अलर्ट फ़ंक्शन में एक स्ट्रिंग जोड़ें। – Siedrix

0

आप जावास्क्रिप्ट के साथ ब्राउज़र विंडो के बाहर माउस ईवेंट ट्रैक नहीं कर सकते हैं।

जैसा कि here समझाया गया है आप केवल यह जांच सकते हैं कि माउस खिड़की छोड़ देता है या नहीं।

+0

हम्म, बहुत उपयोगी लिंक के लिए धन्यवाद, ऐसा लगता है कि यह संभव है, और आप कह रहे हैं कि यह नहीं है? – hooleyhoop

+0

शायद फ्लैश में यह संभव है लेकिन जावास्क्रिप्ट – felixsigl

+0

वास्तव में नहीं? वीमियो पेज पर कोई फ्लैश नहीं है जिसे मैं देख रहा हूं। वास्तव में वास्तव में – hooleyhoop

0

आप शायद mouseout घटना पकड़ कर सकते हैं और फिर वहाँ से अपने mouseup फ़ंक्शन को कॉल करें:

$(window).mouseout(function() { $(item).mouseup(); }); 
+0

मैं खिड़की छोड़ते समय माउसअप नहीं करना चाहता हूं। मैं खिड़की के बाहर ड्रैग घटनाओं को कैप्चर करना जारी रखना चाहता हूं। – hooleyhoop

+0

यह जो कुछ मैं करना चाहता हूं उसके विपरीत – hooleyhoop

+0

@hooleyhoop जेएस के साथ संभव नहीं है। हालांकि, आप ऑटोहॉटकी जैसी किसी भी विंडो का उपयोग करके किसी भी विंडो से ईवेंट की निगरानी कर सकते हैं। – 10basetom

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