javascript scoping issue inside a function call

I'm having a really hard time figuring out the scoping issue with the following script using the Google Maps API v3. I'm trying to geocode an unknown number of records (pulled from a database) and create a PolyLine from the results. There's some ruby sprinkled in the code, but it shouldn't be relevant to the JS right? var trippath = new Array(); function drawHistoryPath(coordinates) { var tripHistoryPath = new google.maps.Polyline({ map: map, path: coordinates, strokeColor: "#6A0606", strokeOpacity: 1.0, strokeWeight: 5 }); } <% @pins.each do |ps| %> geocoder.geocode( { 'address': '<%= escape_javascript(ps.location) %>'}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { trippath.push(results[0].geometry.location); } else { alert("Geocode was not successful finding <%= escape_javascript(ps.location) %> for the following reason: " + status); } }); <% end %> drawHistoryPath(trippath); When drawHistoryPath gets called, trippath doesn't exist, but I've confirmed that it is being populated correctly inside the geocoder function. Any idea why it's not honoring the global scope?

以上就是javascript scoping issue inside a function call的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » JavaScript 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准