2010-02-07 18 views
9

Google मानचित्र v2 के साथ, मैं एक जीएमकर के इन्फोविंडो में टेक्स्ट पर क्लिक करते समय फ़ंक्शन ट्रिगर करने में सक्षम होना चाहता हूं।Google मानचित्र में ईवेंट पर क्लिक करें InfoWindow पकड़ा नहीं

$(".foo").click(myFunction); 

... 

marker.openInfoWindowHtml("<span class=\"foo\">myText</span>"); 

काम नहीं करता है। InfoWindow के अंदर घटना क्यों नहीं पकड़ी जाती है?

उत्तर

9

यदि घटना बाध्यकारी कॉल को कॉल के पहले खोलने के लिए कॉल किया जाता है, तो यह आपके उदाहरण में है, तो अवधि डीओएम में नहीं थी, जबकि पहली कॉल कक्षा "foo" के तत्वों की तलाश में थी, इसलिए कोई हैंडलर नहीं था जुड़ा हुआ।

आप या तो उस ईवेंट हैंडलर को OpenInfoWindowHtml के बाद बुलाया जा सकता है, या "लाइव" ईवेंट बाध्यकारी का उपयोग कर सकते हैं ताकि jQuery दिए गए चयनकर्ता के साथ किसी भी नए तत्व के लिए डीओएम की निगरानी करेगा।

$(".foo").live('click', myFunction); 
+0

धन्यवाद केविन, यह काम करता है। मुझे एक jquery मोबाइल आंतरिक # लिंक पर एक क्लिक इवेंट डालना होगा और ईवेंट की आग से पहले आंतरिक पृष्ठ लोड होना प्रतीत होता है ?? बस ऐसा कुछ जिसके बारे में अवगत होना चाहिए। –

3

जहाँ तक मुझे पता है, GMaps सामग्री InfoWindow में प्रोग्राम के इंजेक्शन, तो इंजेक्शन तत्वों पर किसी भी बाध्य ईवेंट हैंडलर्स सक्रिय नहीं होगा जब तक आप घटना प्रतिनिधिमंडल का उपयोग करें:

$(".foo").live("click", myFunction); 

live ईवेंट हैंडलर्स देखें।

0

इस प्रयास करें:

google.maps.event.addListener(infowindow,"**domready**",function() { 
    var Cancel = document.getElementById("Cancel"); 
    var Ok = document.getElementById("Ok"); 

    google.maps.event.addDomListener(Cancel,"click",function() { 
     infowindow.close(); 
    }); 

    google.maps.event.addDomListener(Ok,"click",function() { 
     infowindow.close(); 
     console.log(position); 
     codeLatLng(position); 
    }); 
}); 
10

मैं केविन गोर्स्की की तरह काम इसे पाने सके समझाया ... jQuery 1.9.1 और मैप्स एपीआई वी के साथ

= निम्नलिखित काम करता है 3.exp:

infowindow.setContent('<a href="#" id="test">test</a>'); 
google.maps.event.addDomListener(infowindow, 'domready', function() { 
    $('#test').click(function() { 
     alert("Hello World"); 
    }); 
}); 
0

सरल समाधान और मेरे लिए काम। अवधि में ऑनक्लिक घटना का उपयोग करें।

<span class=\"foo\" onclick="test()">myText</span> 

function test(){ 
alert('test OK'); 
} 
संबंधित मुद्दे