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

时间:2011-05-19 15:17:35

标签: javascript google-maps google-maps-api-3

当用户将鼠标放在div上时,我使用以下代码使地图上的标记更改。 Marker1在initialize()中定义如下:

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

我尝试在initialize()函数之外添加以下行

var marker1;

我收到错误:未捕获的ReferenceError:Google未定义

我的javascript不是很好,我在某个地方犯了错误吗?

1 个答案:

答案 0 :(得分:2)

如果您在initialize()函数之外添加了var marker1;,请确保在initialize()函数中使用var时仍然没有marker1

通过将var marker1;置于函数之外,您将为变量marker1提供全局范围。如果你还在initialize()函数中包含var,它将创建一个不同的局部变量(作用于该函数),div onmouseover处理程序中的用法将不会指向你所期望的。

此外,Google错误可能是您已将其大写。在初始化函数中,google是小写的。