Dizzy Bryan High
Dizzy Bryan High

Reputation: 2061

google maps api v3 marker click not working

not sure where the problem lies with this, i created a google map with custom markers a few months back using v3 of the api. the info windows were working back then.

i have been porting it onto a new site and cant get the info window to open, the js alerts in the right point when creating the click event but the click event does not fire all i can do is drag the map, so i looked at the last site i did, and its not working there either now.

so not sure how to fix this, the code i have to create ther info window is as follows:

markersArray.push(marker);
        markersPosArray.push(myLatLng);
        // Wrapping the event listener inside an anonymous function
        // that we immediately invoke and passes the variable i to.
        (function(myData, marker) {
            alert('creating listener for: '+marker);
            // Creating the event listener. It now has access to the values of
            // myData and marker as they were during its creation
            google.maps.event.addListener(marker, 'click', function() {
                //create thecontent for the infowindow
                alert('creating info window');
                var content = 'hello there'; //createContent(myData);
                infowindow.setContent(content);
                infowindow.open(map, marker);
            });


        })(myData, marker); 

maybe something has changed in the api that i am unaware off?

the testpage can be seen at: http://www.disposalknowhow.com/locator.php In the locator use the following to obtain results:

type: electrical/electronics - item: computers - radius: 100 - postcode: n11hl

the previous one i did that is not working either now can be seen at: http://www.focus-on-plants.com/locator_iconed.php (can use any parameters here in the form)

UPDATE:

in reply to treffys answer:

the infowindow is defined when i create the map:

var myLatLng = new google.maps.LatLng(51.470, -0.00);
    var bounds = new google.maps.LatLngBounds();
    var geocoder = new google.maps.Geocoder();
    var gotIcons = false;
    var iconImageArray = {image:{}, size:{}, sizeX:{}, sizeY:{}, origin:{}, originX:{}, originY:{}, anchorpoint:{}, anchorpointX:{}, anchorpointY:{}};
    var iconShadowArray = {image:{}, size:{}, sizeX:{}, sizeY:{}, origin:{}, originX:{}, originY:{}, anchorpoint:{}, anchorpointX:{}, anchorpointY:{}};
    var iconShapeArray = {poly:{}, coord:{}};
    var myIconArray = {icon:{}, shadow:{}, shape:{}}
    var infowindow = new google.maps.InfoWindow();
    var markersArray = []; // to store out markers
    var markersPosArray = []; // to store lat/lang of markers for zooming function
    var markersInfoArray = [];
    // MAP OPTIONS
    var myOptions = {
        zoom: 5,
        center: myLatLng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl: true,
        mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
            position: google.maps.ControlPosition.BOTTOM
        },
        navigationControl: true,
        navigationControlOptions: {
            style: google.maps.NavigationControlStyle.ZOOM_PAN,
            position: google.maps.ControlPosition.TOP_RIGHT
        },
        scaleControl: true,
        scaleControlOptions: {
            position: google.maps.ControlPosition.TOP_LEFT
        }
    };//end map options
    var map = new google.maps.Map(document.getElementById("loc_map"), myOptions);

Upvotes: 0

Views: 3290

Answers (1)

Treffynnon
Treffynnon

Reputation: 21553

I am using the following code to display an info bubble:

var info_pane = new google.maps.InfoWindow({
                    content: info,
                    disableAutoPan: false,
                    maxWidth: '300px'
                });
info_pane.open(map, marker);

Upvotes: 1

Related Questions