On May 24, 8:13 am, Joe Gawron <[email protected]> wrote: > Hi, all > > Please consider the following code snips as returning my desired > infoWindow 'Click' event behavior: > ... > var markerWindowContent = customAction(row) ; > google.maps.event.addListener(featureMarker, 'click', > function(event) { > // first close any currently open infoWindow > if (!isEmpty(layerWindow.getContent())) { > layerWindow.close(); > } > layerWindow.setContent(markerWindowContent); > layerWindow.setPosition(coordinate) ; > // test for streetView > if (!campusViewFlag) { > layerWindow.open(map); > } else { > layerWindow.open(campusView); > } > // And add a listener to ensure the map is centered on the > feature coordinate when closing the infoWindow > // ** note this is inside the click listener, otherwise the > markerWindow is undefined so this listener barfs. > google.maps.event.addListener(layerWindow,'closeclick', > function() { > current_loc = coordinate ; > clickFlag = true ; > resetZoomAndCenter(); > clickFlag = false ; > }); > }); > > function customAction(dataRow) { > var builtInfoWindow ; > switch (dataRow[13]) { > case "clickthrough": > var open_link = window.open('','_top'); > open_link.location=dataRow[11]; > builtInfoWindow = dataRow[0] ; > break ; > default: > builtInfoWindow = "<div id='smallpopup' class='smallpopup'><div > id='smallpopup_title' class='smallpopup_title'>" ; > builtInfoWindow = builtInfoWindow + dataRow[0] + "</div>"; > builtInfoWindow = builtInfoWindow + "<div id='smallpopup_description' > class='smallpopup_description'>" + dataRow[1] ; > builtInfoWindow = builtInfoWindow + "<br /><a href='" + dataRow[11] + > "'>" + dataRow[12] + "</a>"; > builtInfoWindow = builtInfoWindow + "<div></div>" ; > } > return builtInfoWindow ; > > } > > The first is the usual event handler. The second determines what the > viewer will see. The intent is if dataRow[13], where dataRow is a row > of data from a Fusion Table extract, contains something, the click > behavior will be something other than the standard infoWindow. In > this case, 'clickthrough' should send the viewer directly to a link > stored in dataRow[11]. > > Further, I call the customAction function from two places; a set of > data directly from FusionTables, and a set of data from GViz to allow > me custom markers. Either way, the same code gets called for creating > the click handler action. > > When I create the handler for a data row from Fusion Tables, it works > as expected, and transfers windows when clicked. But, when I create > the handlers for the GViz markers, it executes the window transfer on > the handler creation. Same code, same passed data structure, I think, > but different results. > > Anybody have an idea why?
The set of open_link.location happens when you execute customAction(row), not when the click listener runs. My guess is you want that call inside the click listener. -- Larry > > and if you need the map page, it's https://aledev.boisestate.edu/joegawron/campusmap/TestMap.html > Be warned the code sucks to read. > > thanks, > Joe -- You received this message because you are subscribed to the Google Groups "Google Maps JavaScript API v3" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-js-api-v3?hl=en.
