javascript - 使谷歌地图 api v2 addDomListener 在 IE 中工作

标签 javascript google-maps google-maps-api-2

我在使用 google map api v2 时遇到一些问题。我想要的是能够将鼠标悬停在工具提示上。 下面是我的代码。在firefox中可以工作,但我必须非常轻轻地在工具提示上移动鼠标,如果我快速移动它会隐藏(已解决:在鼠标移开功能上添加延迟,并检查我是否触发工具提示)和最糟糕的部分它在 IE 中根本不显示。如果我越过定位点,我将能够看到工具提示,但我无法将鼠标放在它上面。

function createHotelSearchMarker(point, number, message) {
    var newIcon = new GIcon(G_DEFAULT_ICON);
    wIcon.image = imageChart + "chst=d_map_spin&chld=0.5|0|CCCCCC|10|_|" + number + "&ext=.png";
    var marker = new GMarker(point, {icon: newIcon, clickable:true, zIndexProcess:importanceOrder});
    marker.importance = 1;  
    /*add listener for mouseover*/
    GEvent.addListener(marker, "mouseover", function() {
        marker.openExtInfoWindow(
            map,
            "mapInfoWindow",
            "<div id='tooltip'>" + message + "</div>",
            {beakOffset: 3}
        );
        marker.setImage(imageChart + "chst=d_map_spin&chld=0.5|0|FF0000|10|_|" + number + "&ext=.png");
        marker.importance = 2;
        marker.setLatLng(marker.getLatLng());

        /*i added a dom listener for the tooltip*/
        if(document.getElementById("tooltip") != null) {

            GEvent.addDomListener(document.getElementById("tooltip"), "mouseover", function(){
                isFiredByDivListener = 1;
                GEvent.trigger(marker,"mouseover");
            });

            GEvent.addDomListener(document.getElementById("tooltip"), "mouseout", function(){
                isFiredByDivListener = 0;
                GEvent.trigger(marker,"mouseout");
            });
        }
    });

    /*add a listener for mouse out*/
    GEvent.addListener(marker, "mouseout", function() {
        map.closeExtInfoWindow();

        marker.setImage(imageChart + "chst=d_map_spin&chld=0.5|0|CCCCCC|10|_|" + number + "&ext=.png");
        marker.importance = 1;
        marker.setLatLng(marker.getLatLng());

    });
    return marker;
    }

the marker will be return and 


if (marker != null){
                map.addOverlay(marker);
            }

感谢您的帮助和时间

最佳答案

在我看来,您已经遇到了这种情况,即您可能会递归触发标记鼠标悬停的潜在问题。我建议将两个 addDomListener 事件监听器移到标记的事件监听器之外。

GEvent.addListener(marker, "mouseover", function() {
        ...
            GEvent.addDomListener(document.getElementById("tooltip"), "mouseover", function(){
                GEvent.trigger(marker,"mouseover");
            });

关于javascript - 使谷歌地图 api v2 addDomListener 在 IE 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8907886/

相关文章:

javascript - 为什么文字数组可以工作,而编码数组却不行?

javascript - 如何在谷歌地图多边形内绘制直线

Android - 投入生产后无法再看到谷歌地图

android - 如何在 Google Map Api V2 Android 中搜索?

javascript - 避免在 typescript 中添加字符串和数字?

javascript - 在 HTML5/JS 中更改 SVG 圆的属性

android - 谷歌地图不会加载到我的 PhoneGap Android 应用程序中

javascript - 谷歌地图部分来自,灰色区域来自谷歌服务器而不是图像

Javascript 代码未在 PUG/Jade 文件上运行

javascript - 谷歌地图 : Auto close open InfoWindows?