2011-05-11 15 views
6

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

कर्सर को रखने का एकमात्र तरीका क्लिक करने योग्य सेट करना है: पॉलीगॉन के लिए झूठा, लेकिन यह पॉलीगॉन के लिए सभी ईवेंट श्रोताओं को निष्क्रिय करता है।

मैंने आधा खर्च किया है और वेब पर समाधान खोजने की हमारी कोशिश की है, लेकिन असफल रहा। क्या किसी के पास ज्ञान का ऐसा मणि है?

+0

आपके मानचित्र के उपयोगकर्ता कैसे जानते होंगे कि कर्सर बदल नहीं सकता है तो बहुभुज क्लिक करने योग्य है? – plexer

+1

यह यूआई और यूएक्स का मामला है। अधिकांश बहुभुज डिफ़ॉल्ट रूप से क्लिक करने योग्य होते हैं, क्लिक करने का कारण मानचित्र पर सटीक स्थान को इंगित करना है, और वहां हाइलाइट समर्थन है, इसलिए कर्सर हाथ यहां बुरा है। – savenkov

+0

यह प्रश्न अब काफी पुराना है, लेकिन मुझे एक ही समस्या है और समाधान के तरीके में थोड़ा सा पता लग रहा है - क्या आपको ऐसा लगता है जो उत्पादन अनुकूल था? सबसे अच्छा समाधान जो मैं सोच सकता हूं, इसमें एक गैर-क्लिक करने योग्य पॉलीगॉन ड्राइंग करना होगा जब मुझे कर्सर और एक क्लिक करने योग्य एक को बदलने की ज़रूरत है। अनावश्यक रूप से जटिल, लेकिन मुझे लगता है कि यह मेरे परिदृश्य के लिए काम करेगा। –

उत्तर

2

कुछ सोचने के बाद मैं बहुत हैकी ऐसा करने के लिए रणनीति के साथ आया हूं। मैं इसे अकादमिक जिज्ञासा के लिए शामिल करता हूं, लेकिन मैं इसे उत्पादन साइट में लागू करने की अनुशंसा नहीं करता।

छद्म कोड में:

onPolygonMouseover: 
    setTimeout(0 ms) 

onTimeout: 
    Find all elements in the dom with cursor == pointer 
    Set pointer to crosshair 

jQuery == सूचक कर्सर के साथ सभी तत्वों को ढूंढने के लिए उपयोगी हो सकता है। वैकल्पिक रूप से आप बस पूरे डोम पर फिर से शुरू कर सकते हैं।

टाइमआउट क्यों?

टाइमआउट इसलिए है क्योंकि मैं अनिश्चित हूं कि एपीआई किस घटना को उजागर करता है। यदि आपकी घटना आंतरिक एपीआई घटनाओं से पहले संसाधित की जाती है, तो आपका कर्सर आंतरिक कोड द्वारा ओवरराइट हो सकता है।

क्यों 0 का समय समाप्ति?

0 का टाइमआउट जेएस निष्पादन स्टैक पर कोड को धक्का देता है। इसे अगली बार निष्पादित किया जाएगा कोड निष्पादन में "ब्रेक" होगा। एक बार सभी घटना प्रसंस्करण कोड समाप्त हो जाना चाहिए।

+0

धन्यवाद! मैं कामकाजी समाधान खोजने का आनंद लेने की कोशिश करूंगा, लेकिन मैं उत्पादन पर प्रयोज्यता के बारे में सहमत हूं :-) – savenkov

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