2011-12-23 127 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

相關問題