Sunday, February 12, 2012

How to "simulate” a click on a Google Maps Marker?


What I'd like to do is to invoke the click handler on a marker. So this is my code :




var marker = new google.maps.Marker({
position: location,
map: map,
title: title
});

google.maps.event.addListener(marker, 'click', function() {
alert("clicked");
});

marker.click();



but I cannot see any alert...

2 comments:

  1. It's possible to trigger any Maps API event listener on any object using the google.maps.event.trigger function.

    You'll probably want to pass in a mock MouseEvent object, depending on what your event listener(s) do with it.

    Example:

    google.maps.event.trigger(marker, 'click', {
    latLng: new google.maps.LatLng(0, 0)
    });

    ReplyDelete
  2. Store the click listener in a variable and just call it when you need to simulate a click.

    var click = function () { alert('clicked'); };
    google.maps.event.addListener(marker, 'click', click);

    click();


    You should be fine as long as you keep a reference to the function.

    ReplyDelete