javascript - Google Maps API v3 binding events to multiple maps -
i've got page 2 google maps on, using v3 api. have 1 pin each, same lat & long set each pin, although 1 of maps have other pins added @ later date (when can work!) maps generated looping through object, further maps can added if needed.
what trying bind bounds_changed
event once both maps, run map.setzoom()
after map.fitbounds()
has been run. event, however, binds last map set up, not reset zoom on first map.
link jsfiddle replicating issue: http://jsfiddle.net/pkhb8mvz/7/
(for more clear example of event being bound to, change event listen on click
rather bounds_changed
try clicking on first map , watch zoom level change on second map)
any appreciated!
the problem map
variable being redefined on each iteration of loop, time event listener callback runs operate on second google.maps.map
object. simplest solution capture value of map
variable on each iteration using closure, so:
(function (map) { var listener = new google.maps.event.addlisteneronce(map, "bounds_changed", function () { if (!opts.center) { map.setzoom(opts.zoom); }; }); }) (map);
i forked jsfiddle demonstrate idea: https://jsfiddle.net/e8qbr8ql/
Comments
Post a Comment