2010-04-10 11 views
6

स्थानांतरित नहीं करता है, मैंने उन मुद्दों के बारे में पढ़ा है जहां mousemove घटना सफारी/वेबकिट में दो बार निकाल दी गई है, लेकिन मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि mousemove माउस पर आग लगती है स्थानांतरित नहीं हुआ। यही है: यह पहले से ही आग लग जाता है जब माउस कर्सर संदर्भ के ऊपर स्थित होता है कि पृष्ठ लोड होने/रीफ्रेश होने पर ईवेंट संलग्न होता है। और क्योंकि मैं इसे document (ब्राउज़र का पूरा व्यूपोर्ट) से जोड़ रहा हूं, यह सफारी में तुरंत आग लगती है। मैंने इसे html तत्व से body और एक रैपर div पर संलग्न करने का प्रयास किया है। कोई परिवर्तन नहीं होता है।वेबकिट और सफारी आग mousemove जब भी माउस

$(document).bind('mousemove', function() { 
    alert('Mouse moved!'); 
    $(document).unbind('mousemove'); 
}); 

अन्य ब्राउज़रों में ठीक काम करता है। कोई भी देख रहा है कि मैं क्या गलत कर रहा हूं? धन्यवाद।

+0

मुझे एक ही समस्या है। सीएमडी, ctrl alt, शिफ्ट और कैप्स लॉक भी mousemove घटना (मैक पर सफारी 4) आग। इसे यहां आज़माएं: http://www.quirksmode.org//js/events/mousemove.html –

उत्तर

1

मुझे पता है कि यह एक गंदे हैक है, लेकिन कम से कम यह कुछ है: कॉलबैक फ़ंक्शन को दूसरी बार mousemove निष्पादित किया जाता है।

var $document = $(document), i = 0; 
$document.bind('mousemove', function() { 
if (++i > 1) { 
    alert('Mouse moved!'); 
    $document.unbind('mousemove'); 
}; 
}); 

डेमो: http://fiddle.jshell.net/Yz5Bd/show/light/

के लिए क्या इसके लायक है, सफारी केवल ब्राउज़र पृष्ठ लोड पर mousemove फायरिंग नहीं है - आईई यह भी करता है। किसी भी तरह, अन्य ब्राउज़रों का उपयोग करने वाले लोग 'देरी' पर ध्यान नहीं देंगे, क्योंकि यह आपके माउस को केवल एक पिक्सेल को स्थानांतरित करना लगभग असंभव है।

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