2012-07-11 23 views
6

का उपयोग कर एसवीजी तत्वों के लिए फायरिंग नहीं इस jsFiddlemouseenter/mouseleave घटनाओं jQuery.on

पर एक नज़र mouseenter/mouseleave सही ढंग से फायरिंग होने के लिए जब एसवीजी के साथ conjuction में jQuery का उपयोग कर प्रकट नहीं होते हैं (राफेल 2.0) है। मुझे पता है कि एसवीजी jQuery एसवीजी के साथ 100% संगत नहीं है, हालांकि, जहां तक ​​मैं इसे देख सकता हूं केवल आईई 9 को प्रभावित करता है।

अजीब चीज यह है कि यदि आप तेजी से अपने माउस को svg तत्व पर/बंद कर देते हैं (सुनिश्चित करें कि आप ऐसा करने में HTML फलक से ठीक आते हैं) और उस पर वापस घटनाएं आग लगती हैं (लेकिन हर बार नहीं)। बस यह सुनिश्चित करने के लिए कि on के साथ यह कोई सामान्य समस्या नहीं थी, मैंने click ईवेंट को झुकाया जो हर समय ठीक काम करता है।

बस सोच रहा है कि क्या कोई जानता है कि यह एक बग या यहां तक ​​कि एक ज्ञात मुद्दा है?

+0

मेरे लिए काम करता है (क्रोम) –

+0

@StefanFandler - "* जहां तक ​​मैं इसे देख सकता हूं केवल आईई 9 * को प्रभावित करता है"। स्पष्टीकरण के लिए टैग की गईं। – James

+0

मैं प्लेग की तरह एसवीजी के संयोजन के साथ jQuery का उपयोग करने से बचता हूं। यह एक खनन क्षेत्र है जो इस तरह के अपवादों से भरा है। मुझे लगता है कि आपकी बग इस http://forum.jquery.com/topic/1-6-2-broke-svg-hover-events से संबंधित है (दो साल पहले से अनसुलझा)। – Duopixel

उत्तर

2

यह 1.7.2 में एक बग है। ticket देखें।

अगर मैं jQuery (एज) का उपयोग करता हूं तो समस्या दूर हो जाती है इसलिए अगली अनुसूचित रिलीज (1.8) में तय किया जाना चाहिए।

0

मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि jQuery 1.8.2 और एंड्रॉइड फोनगैप के माध्यम से कोई jq-mobile उपयोग नहीं किया जाता है। मैं स्पर्श और माउस घटनाओं को यादृच्छिक रूप से चयनित और सिंक्रनाइज़ नहीं कर रहा हूं ... अर्थात् सूक्ष्म अंतर ट्रिगर माउस का उपयोग करें और टचस्टार्ट (कभी-कभी अगर कोई प्रविष्टि भी नहीं भेजा गया है तो माउस एन्टर होता है) तो 2 टचअंड्स ट्रिगर करता है। यदि आपके पास टचइवेन्ट माउस को ट्रिगर करता है तो दूसरा स्पर्श पैटर्न (प्रारंभ, अंत, अंत) में माउस लेव भेजता है (माना जाता है कि आप सूक्ष्म टैप मतभेदों के माध्यम से यादृच्छिक रूप से एक क्लिक कॉम्बो ट्रिगर नहीं करते हैं)।

मेरी अपेक्षा थी कि उन्हें दोनों परिस्थितियों में एक साथ ट्रिगर करना चाहिए, एक स्पर्श (टच इवेंट) मल्टी टच की ज़रूरतों के लिए अधिक उपयोग किया जाता है, या यह पहचानने के लिए कि टच इंटरफ़ेस के माध्यम से सिम्युलेट किए गए क्लिक ईवेंट के बाद माउस लीव ईवेंट नहीं होने वाला है (किसी न किसी तरह?...)। मेरी अन्य उम्मीदें होगी यदि मैं माउस ईवेंट के लिए एक पंजीकृत श्रोता को संसाधित नहीं करता हूं या नहीं, लेकिन मैं टच इवेंट्स के लिए करता हूं और इसके विपरीत, अलग-अलग घटनाएं क्या सुनाई देती हैं या नहीं भेजी जाती हैं (क्या झूठी वापसी होती है? या preventDefault आदि के माध्यम से बुलबुला रोकने के लिए)।

वैसे भी मुझे लगता है कि वर्तमान में आपको यादृच्छिक अनपेक्षित अप्रत्याशित तरीकों से दोनों प्रकार की घटनाओं को संभालने की आवश्यकता है, जिसका मतलब है कि माउस दुनिया में जो कुछ भी है उसे स्पर्श करने वाले उपकरणों पर 'ओवर' घटनाओं के रूप में वर्णित किया गया है।

असल में मैं सोच रहा हूं कि एक स्पर्श को ओवर/एंटर ईवेंट नहीं भेजना चाहिए, जबकि एक क्लिक को छूने की भी मात्रा होनी चाहिए, और यदि मैं रोकथाम को छूने के लिए सुनता हूं तो डिफॉल्ट को माउसइवेंट्स को रद्द करना चाहिए।

वैसे भी यह दोनों को भेजने और मुझे इसे हल करने का सबसे अधिक अर्थ बनाता है। मुझे लगता है कि भ्रम है कि आप केवल आधे घटनाओं को सुन रहे हैं (लापता स्पर्श)। ... बहुत अच्छी किस्मत! क्या वे विचार किसी को उच्च स्तर या निम्न स्तर की देवताओं पर गड़बड़ी से निपटने में मदद कर सकते हैं। (क्या यह ब्राउज़र स्तर पर दोष है? मुझे ऐसा लगता है।)

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