2011-05-19 225 views
0

我正在使用以下代碼,以便在用戶將鼠標放在div上時導致地圖上的標記更改。標記1被初始化內definied()如下:Javascript錯誤:未捕獲ReferenceError:marker1未定義

var marker1 = new google.maps.Marker({ 

       position: new google.maps.LatLng(1.288693,103.846733), 

       map: map, 

       icon: "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|c41200|ffffff" 

      }); 

所謂的onmouseover功能是:

function changeMarker(marker) { 
      var icon = new Google.maps.MarkerImage({ url:"http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|ffffff|c41200"}); 
      marker.setIcon(icon); 
     } 

和DIV是:

<div id="searchresult" onmouseover="changeMarker(marker1)"> 

我得到了同樣的錯誤:未捕獲的ReferenceError :marker1未定義

嘗試2

我嘗試添加以下行初始化()函數

var marker1; 

外面,我得到的錯誤:未捕獲的ReferenceError:谷歌沒有定義

我的JavaScript不是很大,做我做某處出錯了嗎?

+0

看來你的谷歌地圖JavaScript文件未正確載入,請檢查現有的瀏覽器設置,或者在差異瀏覽器中嘗試。 – MUS 2011-05-19 15:24:10

回答

2

如果您在initialize()函數外部添加了var marker1;,請確保您在initialize()函數內的marker1的用法上沒有var

通過將var marker1;放在函數的外部,您將變量marker1設置爲全局作用域。如果你在initialize()函數中還包含var,它將創建一個不同的局部變量(作用域爲該函數),並且div的onmouseover處理程序中的用法不會指向你所期望的。

此外,Google錯誤可能是您已將其大寫。在你的init函數中,google是小寫字母。

+0

太棒了,Google的錯誤消失了!現在我得到的錯誤:GET http:// localhost/mysite/places/[object%20Object] 400(Bad Request) – Nyxynyx 2011-05-19 15:48:24

+0

偉大的我解決了它!我擺脫了var圖標,並直接在URL中放置了marker.setIcon()。我不知道爲什麼這個工程雖然... – Nyxynyx 2011-05-19 15:54:47

+0

@Nyxynyx API文檔說Marker.setIcon可以採取一個字符串或MarkerImage。我沒有說這個字符串應該是一個URL,但看起來就是這樣。 – Kyle 2011-05-19 16:05:32

相關問題