jquery - Google Maps InfoBox with click handlers and scrollbar -
मेरे पास Google मानचित्र javscript API और Infobox प्लग-इन (देशी InfoWindow का अनुकूलन संस्करण) का उपयोग कर एक एप्लिकेशन है। < / P>
यह तब तक काम कर रहा था जब तक कि मेरे पास निम्न उपयोग-मामले नहीं थे: सामग्री के बड़े होने पर मुझे एक स्क्रॉलबार के साथ एक इन्फोबॉक्स की ज़रूरत है, और इसे क्लिक श्रोताओं के साथ कुछ HTML तत्वों को भी शामिल करने की आवश्यकता है।
मुझे आमतौर पर एक इन्फोकॉक के अंदर क्लिक हैंडलर्स का समर्थन करने के लिए क्या करना है, EnableEventPropagation = true सेट करना है, और क्लिक हैंडलर सेट करने के लिए jQuery प्रतिनिधि का उपयोग करें। अगर मैं घटना प्रसार की अनुमति नहीं देता तो jQuery के प्रतिनिधि काम नहीं कर रहे हैं।
यह काम ठीक नहीं हुआ, जब तक कि मुझे कार्यशील स्क्रॉलबार होने के साथ गठबंधन करना पड़ता था! मुझे क्या मिला है यह है कि स्क्रॉलबार केवल तभी काम करेगा यदि मैंने सक्षम EventPropagation = false है, क्योंकि यदि ईवेंट प्रचार सक्षम है, तो ड्रैग इवेंट मैप के पास बस जाता है और पैनिंग के रूप में व्याख्या की जाती है।
क्या किसी को पता है कि मैं इंफोबॉक्स सामग्री पर एक कार्यशील स्क्रॉलबार दोनों के लिए क्या कर सकता हूं और कुछ कॉन्टेंट पर क्लिक हैंडलर्स सेट करने में सक्षम हूं?
मेरे लिए यह ध्वनि होगी तर्कसंगत है कि सक्षमEventPropagation = false दोनों मुद्दों को हल करेंगे, क्योंकि मुझे समझ में नहीं आ रहा है कि क्यों क्लिक ईवेंट को नक्शे में प्रचारित करने की आवश्यकता है ताकि हेल्डलर को आग लगा सकूं जो मैं html तत्वों को देते हैं।
यह मेरे इन्फोबॉक्स के लिए सेटअप ऑब्जेक्ट:
{content: "[my html here]", अक्षम करेंऑटोपैन: गलत, पिक्सलऑफ़सेट: नया google.maps.Size (-77, 10), बॉक्स क्लास: "इन्फोबॉक्स", इन्फोबोक्स क्लीयरेंस: नया google.maps.Size (18, 30), बंद करेंबॉक्स मार्जिन: "14px 6px", फलक: "फ्लोटपैन", सक्षमEventPropagation: true};
सिर्फ अगर आप अभी भी इस पर काम कर रहे हैं, तो आपको अपना माउस इनफोबॉक्स में प्रवेश करते समय पैनिंग / ज़ूमिंग बंद करने के लिए मानचित्र विकल्प। आप इस तरह से कुछ का उपयोग कर सकते हैं:
$ (दस्तावेज़) .delegate ("div # ib", "mouseenter", फ़ंक्शन () {theMap.setOptions ({draggable: false, scrollwheel: false }); Console.log ("माउस दर्ज किया गया पता चला");}); $ (Document) .delegate ("div # ib", "mouseleave", फ़ंक्शन () {theMap.setOptions ({draggable: true, scrollwheel: true}); console.log ("mouseleave detected");});
Comments
Post a Comment