मैं mousemove घटनाओं को कुल करने के लिए एक साफ तरीका पता लगाने की कोशिश कर रहा हूँ ताकि मैं सुनिश्चित कर सकूं कि मेरा कोड बुलाया जाता है, लेकिन केवल 250-300 मिलीसेकंड में एक बार।jQuery: आग mousemove घटनाओं अक्सर कम
मैं निम्नलिखित की तरह कुछ का उपयोग कर के बारे में सोचा है, लेकिन साथ ही कोई बेहतर पैटर्न था, या कुछ jQuery है कि एक ही काम करेंगे प्रदान करता है सोच रहा था:
var mousemove_timeout = null;
$('body').mousemove(function() {
if (mousemove_timeout == null) {
mousemove_timeout = window.setTimeout(myFunction, 250);
}
});
function myFunction() {
/*
* Run my code...
*/
mousemove_timeout = null;
}
संपादित करें: स्वीकार किए जाते हैं जवाब नीचे इस स्थिति के लिए पूरी तरह से काम करेगा, हालांकि, मैंने पाया कि उत्तर में प्रदान की गई mousestop()
कार्यक्षमता ने वास्तव में एकत्रीकरण की मेरी आवश्यकता को समाप्त कर दिया है, इसलिए यदि आप इस प्रश्न को पढ़ रहे हैं और उत्तर ढूंढ रहे हैं, तो देखें कि mousestop प्लगइन क्या है वास्तव में जरुरत है!
+1 - टिप के लिए धन्यवाद! क्या यह सबसे अच्छा/साफ तरीका है? एक हैक की तरह लगता है ... –
हाँ वास्तव में यह एक हैक का थोड़ा सा है, 'window.setInterval' इस परिदृश्य के लिए अधिक अनुकूल होगा। –
स्वीकृत! - बाहर निकलता है, 'mousestop' फ़ंक्शन बिल्कुल वही है जो मुझे चाहिए और पूरी तरह से टाइमआउट कोड को खत्म कर देगा। बहुत बहुत धन्यवाद! –