Solved

Referencing Google Maps API markers from Javascript

Posted on 2013-06-17
2
417 Views
Last Modified: 2013-06-17
Here is my test page:
http://tech.lifespanfitness.com/store-locator.asp?p=19565

It works fine. If you click any of the red markers on the map, you get a details "info window". The click event is coded like this:

google.maps.event.addListener(marker0,'click', function(){
	infowindow.close();
	infowindow.setContent('<p><b>Play It Again Sports - Wyomissing</b><br />1050 Berkshire Blvd, Wyomissing, PA 19610<br />United States<br />610.779.8360<br />Distance: 5 miles or 9 kilometers</p>');
	infowindow.open(map,marker0);
});

Open in new window


However, I would like to also trigger these "info window" events from other elements. For example, I setup a test button on that same page (you will see it at the top-right of the screen):

<input id="mybutton" type="button" value="click here" />

Open in new window


I tried handling that button like this:

$(function(){
	$('#mybutton').click(function(marker0){
		infowindow.close();
		infowindow.setContent('content here');
		infowindow.open(map,marker0);
	});
});

Open in new window


...but I just get an error "cannot find the variable 'infowindow'".

How can I make it so clicking that button displays one of the five info windows on that screen? I guess I am not sure how to reference the info window, outside of the code that Google Maps API has already provided.

Thank you!
0
Comment
Question by:bbdesign
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 4

Accepted Solution

by:
Ersoy Hasan earned 500 total points
ID: 39252933
You can't find infowindow variable because it is defined inside the initialize function's scope and you are trying to access it outside it. Move this :
		$('#mybutton').click(function(marker0){
			infowindow.close();
			infowindow.setContent('content here');
			infowindow.open(map,marker0);
		});

Open in new window

inside the initialize function.
0
 

Author Comment

by:bbdesign
ID: 39252959
You are correct, that fixed it. Thanks!
0

Featured Post

Guide to Performance: Optimization & Monitoring

Nowadays, monitoring is a mixture of tools, systems, and codes—making it a very complex process. And with this complexity, comes variables for failure. Get DZone’s new Guide to Performance to learn how to proactively find these variables and solve them before a disruption occurs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Chart.js, used properly, can visually add a difference to your charting applications. It engages your visitors and allows them to interact with data they otherwise wouldn't be able to without expensive and complicated systems. For this…
JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript …
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question