Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 是否可以在特定条件下关闭信息窗口_Javascript_Angularjs_Google Maps - Fatal编程技术网

Javascript 是否可以在特定条件下关闭信息窗口

Javascript 是否可以在特定条件下关闭信息窗口,javascript,angularjs,google-maps,Javascript,Angularjs,Google Maps,仅当您将鼠标悬停在标记上时,信息窗口才会显示。当您将鼠标从标记上移开时,它应该会消失。 只有单击标记时,它才应保持不变。然后单击信息窗口的关闭按钮关闭。您可以尝试使用: 浏览器中的JavaScript是事件驱动的,这意味着JavaScript通过生成事件来响应交互,并期望程序侦听有趣的事件。有两种类型的事件: 用户事件(如单击鼠标事件)从DOM传播到Google Maps JavaScript API。这些事件是独立的,不同于标准DOM事件。 MVC状态更改通知反映映射JavaScript AP

仅当您将鼠标悬停在标记上时,信息窗口才会显示。当您将鼠标从标记上移开时,它应该会消失。
只有单击标记时,它才应保持不变。然后单击信息窗口的关闭按钮关闭。

您可以尝试使用:

浏览器中的JavaScript是事件驱动的,这意味着JavaScript通过生成事件来响应交互,并期望程序侦听有趣的事件。有两种类型的事件:

用户事件(如单击鼠标事件)从DOM传播到Google Maps JavaScript API。这些事件是独立的,不同于标准DOM事件。 MVC状态更改通知反映映射JavaScript API对象中的更改,并使用属性更改约定命名。 每个Maps JavaScript API对象导出许多命名事件。对某些事件感兴趣的程序将为这些事件注册JavaScript事件监听器,并在接收到这些事件时通过调用addListener来注册对象上的事件处理程序来执行代码

您可以尝试使用以下代码:

这也可以在中找到。只要您的事件侦听器不与其他侦听器冲突,它就会正常工作

希望这有帮助

var geocoder;
var map;

function initialize() {
    var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
        center: new google.maps.LatLng(37.4419, -122.1419),
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });

setMarkers(map,locations);


}
google.maps.event.addDomListener(window, "load", initialize);
var locations = [
  ['Bondi Beach', -33.890542, 151.274856,,, 'Bondi Beach', 4],
  ['Coogee Beach', -33.923036, 151.259052,,,'Coogee Beach', 5],
  ['Cronulla Beach', -34.028249, 151.157507,,,'Cronulla Beach', 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187,,, 'Manly Beach', 2],
  ['Maroubra Beach', -33.950198, 151.259302,,,'Maroubra Beach', 1]
];
function setMarkers(map, locations) {
    var bounds = new google.maps.LatLngBounds();
    for (var i = 0; i < locations.length; i++) {
        var item = locations[i];

        var myLatLng = new google.maps.LatLng(item[1], item[2]);
        bounds.extend(myLatLng);
        var address = item[5];

        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
        });

        var content = address;

        var infowindow = new google.maps.InfoWindow()

        google.maps.event.addListener(marker, 'mouseover', (function (marker, content, infowindow) {
            return function () {
                infowindow.setContent(content);
                infowindow.open(map, marker);
            };
        })(marker, content, infowindow));
        google.maps.event.addListener(marker, 'mouseout', (function (marker, content, infowindow) {
            return function () {
                infowindow.close();
            };
        })(marker, content, infowindow));

    }
    map.fitBounds(bounds);
}