Javascript错误:未捕获ReferenceError:marker1未定义

问题描述:

我正在使用以下代码,以便在用户将鼠标放在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

如果您在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