मैं Google मैप API v.3 के साथ काम कर रहा हूं। मैं infowindow पर एक इमेज जोड़ रहा हूं और उस इमेज के क्लिक इवेंट को हैंडल करना चाहता हूं। लेकिन ईवेंट आग पर दो बार क्लिक करें। यहाँ मेरा कोड है-
var mapOptions = {center: new google.maps.LatLng(lat,lng), zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP};
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var myLatlng = new google.maps.LatLng(lat,lng);
var data = {}; data.title = "title"; data.lat = lat;data.lng = lng;
data.description = "<img class="test-image" src="/images/src"";
var marker = new google.maps.Marker({position: myLatlng, map: map,title: "title"});
(function (marker, data) {
google.maps.event.addListener(marker, "click", function (e) {
infoWindow.setContent(data.description);
infoWindow.open(map, marker);
});
google.maps.event.addDomListener(infoWindow, "domready", function () {
$(".test-image").click(function () {
alert("Hello World");
});
});
})(marker, data);
मैं इस समस्या से कैसे छुटकारा पा सकता हूं?
आपका धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 1मैं आपको इस व्यवहार का कारण नहीं बता सकता, लेकिन जब आप उपयोग करते हैं तो यह निश्चित हो सकता है addListenerOnce
और लागू करें domready
में सूची click
मार्कर का -बैक:
(function (marker, data) {
google.maps.event.addListener(marker, "click", function (e) {
google.maps.event.addListenerOnce(infoWindow, "domready", function () {
$(".test-image").click(function () {
alert("Hello World");
});
});
infoWindow.setContent(data.description);
infoWindow.open(map,marker);
});
})(marker, data);
जवाब के लिए 0 № 2
google.maps.event.addListener(marker, "click", function() {
infoWindow.setContent(data.description);
infoWindow.open(map, marker);
$(".test-image").click(function() {
alert("Hello World");
});
});
ये मेरे लिए सही है।