当用户将鼠标放在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不是很好,我在某个地方犯了错误吗?
答案 0 :(得分:2)
如果您在initialize()函数之外添加了var marker1;
,请确保在initialize()函数中使用var
时仍然没有marker1
。
通过将var marker1;
置于函数之外,您将为变量marker1
提供全局范围。如果你还在initialize()函数中包含var
,它将创建一个不同的局部变量(作用于该函数),div onmouseover
处理程序中的用法将不会指向你所期望的。
此外,Google
错误可能是您已将其大写。在初始化函数中,google
是小写的。