Javascript 在div上更改鼠标上的标记图标

Javascript 在div上更改鼠标上的标记图标,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,当用户将鼠标悬停在div标记上时,我想更改标记图标。我找到了一个近似的解决方案,当用户将鼠标悬停在标记上时,标记图标会发生变化。但是我想用div标签来更改它 守则: var icon1 = "imageA.png"; var icon2 = "imageB.png"; var marker = new google.maps.Marker({ position: myLatLng, map: map, id: 1, icon: icon1, title:

当用户将鼠标悬停在div标记上时,我想更改标记图标。我找到了一个近似的解决方案,当用户将鼠标悬停在标记上时,标记图标会发生变化。但是我想用div标签来更改它

守则:

var icon1 = "imageA.png";
var icon2 = "imageB.png";

var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    id: 1,
    icon: icon1,
    title: "some marker"
});

google.maps.event.addListener(marker, 'mouseover', function() {
    marker.setIcon(icon2);
});
google.maps.event.addListener(marker, 'mouseout', function() {
    marker.setIcon(icon1);
});
我的设置应如下所示:

   <div class="sth" onmouseover="ShowMarker(id)" />
此代码应仅按id更改所选标记。 有人能把我的代码改成可用的吗? 我会非常感激的


提前感谢。

你必须在你想要的div上制作一个监听器:

标记1 标记2

然后将标记推入另一个变量,并在其上循环:

var allMarkers = [];
var marker = new ...();
allMarkers.push(marker);

function hover(id) {
    for ( var i = 0; i< allMarkers.length; i++) {
        if (id === allMarkers[i].id) {
           allMarkers[i].setIcon(icon2);
           break;
        }
    }
}

...

我做了一个评论。希望有帮助:

谢谢您快速的回答。我注意到您的代码不幸地改变了这两个标记。我只想更改一个特定的标记,这就是我提供id:property的原因:抱歉,这里是我希望的解决方案^^^我更新了上面的答案,我使用hoverid{allMarkers[id].setIconicon2;}函数实现了同样的效果。无论如何,很好的答案:除了在运行时获取标记列表之外,还有什么方法可以做到吗?我有地图的id和标记的id,但没有数组。所以我需要得到数组,进行循环,并对其进行可能的复制
var allMarkers = [];
var marker = new ...();
allMarkers.push(marker);

function hover(id) {
    for ( var i = 0; i< allMarkers.length; i++) {
        if (id === allMarkers[i].id) {
           allMarkers[i].setIcon(icon2);
           break;
        }
    }
}

...