2011-12-23 55 views
0

我对JavaScript和谷歌地图很新颖。我有一个输入的是,提交时,地理编码的价值,我想它想:检测一个变量是否在不同的函数中发生了变化

  • 如果地图存在的(事情已经进入,并成功地地理编码 的话),然后recenter它
  • 其他创建以该点为中心的地图。

我的代码是一种像这样:

var map; 

function getlatlong() { //this function gets the input value and then geocodes 
    if(map.length){recentermap()} //if map exists, recenter map 
    else{createmap()} //create map 
} 

function createmap(){ //this function creates the map (by editing `var map`) 
    var map = new google.maps.Map(); 
} 

我想我只是不明白JS变量是如何工作的?我的问题是,我怎么看VAR地图已经改变如果我在第二个函数内改变它?

回答

2

当你说:

function createmap(){ //this function creates the map (by editing `var map`) 
    var map = new google.maps.Map(); 
} 

您正在创建一个局部变量称为地图,只有在功能createmap存在。你想用你的外部声明的变量map,所以你不应该使用var关键字:

function createmap(){ //this function creates the map (by editing `var map`) 
    map = new google.maps.Map(); 
} 
+0

感谢。任何有关gmaps api v3的经验......你如何检测是否用var map创建了一张地图? map.length似乎不是通过使用全局'map'而不是本地工作。 – 2011-12-23 03:01:13

+0

@Andypandy尝试只是'如果(地图)'而不是'if(map.length)' – Paulpro 2011-12-23 03:02:26

+0

是的工作。谢谢! – 2011-12-23 03:03:40

相关问题