Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mouseover div(谷歌地图v3 api)上更改谷歌地图标记的图标_Javascript_Google Maps - Fatal编程技术网

Javascript 在mouseover div(谷歌地图v3 api)上更改谷歌地图标记的图标

Javascript 在mouseover div(谷歌地图v3 api)上更改谷歌地图标记的图标,javascript,google-maps,Javascript,Google Maps,当我将鼠标移到div中的文本上时,如何更改谷歌地图上标记的图标?我设法在地图上的标记上用鼠标更改了标记图标 google.maps.event.addListener(marker1, "mouseover", function(event) { this.setIcon("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|ffffff|c41200"); } 编辑: 以下是我现在拥有

当我将鼠标移到div中的文本上时,如何更改谷歌地图上标记的图标?我设法在地图上的标记上用鼠标更改了标记图标

google.maps.event.addListener(marker1, "mouseover", function(event) {
            this.setIcon("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=1|ffffff|c41200");
}
编辑:

以下是我现在拥有的:

function 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"

        }); 
....
}


function changeMarker(marker) {

            alert(marker);

    }



我用的是Chrome。在控制台中,onmouseover div出现错误“uncaughtreferenceerror:marker1未定义”

将onmouseover属性添加到div。假设它被称为changeMarker

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 onmouseover="changeMarker(marker1)">

不过,我建议缓存MarkerImage(因为它看起来相当静态),这样Google就不需要继续重新生成图形图像


您可以设置图像的其他属性。请参见

我正在使用Chrome。在控制台中,
onmouseover
the
我得到错误:

未捕获引用错误:未定义标记1

如果您这样设置变量:

function a() {
  var marker1 = "foo";
}

alert(marker1);
var marker1;

function a() {
  marker1 = "foo";
}

alert(marker1);
在“窗口”级别无法访问marker1。你必须这样写:

function a() {
  var marker1 = "foo";
}

alert(marker1);
var marker1;

function a() {
  marker1 = "foo";
}

alert(marker1);

首先调用initialize函数,定义marker1,然后使用此代码,您也可以通过不同的方式调用此函数,如在div鼠标上方等。

对不起,我在帖子中弄乱了格式。它认为我的div标签是html代码。我尝试了这个,但标记不起作用。。。我使用的代码与你发布的完全相同。。有什么想法吗?我复制了你设置图标的代码,但没有检查它是否有效。我现在就去修谢谢matzahboy!但由于某些原因,带有onmouseover代码的onmouseover div或h1/h2不会导致标记更改……我会检查onmouseover是否被调用(即,将其更改为警报或console.log)。如果这不起作用,那么我不确定问题出在哪里。另一方面,我会删除php标签,因为这个问题与php无关。我会自己做,但我还没有重新标记问题的特权。这会如何改变鼠标上方的图标?