google maps api v3标记点击不起作用

时间:2011-03-21 10:11:29

标签: javascript jquery google-maps-api-3 infowindow

不确定问题出在哪里,我使用api的v3创建了一个带有自定义标记的谷歌地图。信息窗口正在运作。

我一直把它移植到一个新网站上,并且无法打开信息窗口,js在创建点击事件时在正确的位置发出警报但点击事件没有触发所有我能做的就是拖动地图,所以我查看了我做过的最后一个网站,现在它还没有在那里工作。

所以不知道如何解决这个问题,我必须创建热信息窗口的代码如下:

markersArray.push(marker);
        markersPosArray.push(myLatLng);
        // Wrapping the event listener inside an anonymous function
        // that we immediately invoke and passes the variable i to.
        (function(myData, marker) {
            alert('creating listener for: '+marker);
            // Creating the event listener. It now has access to the values of
            // myData and marker as they were during its creation
            google.maps.event.addListener(marker, 'click', function() {
                //create thecontent for the infowindow
                alert('creating info window');
                var content = 'hello there'; //createContent(myData);
                infowindow.setContent(content);
                infowindow.open(map, marker);
            });


        })(myData, marker); 

也许在我不知道的api中有什么变化?

可在以下位置查看测试页:http://www.disposalknowhow.com/locator.php 在定位器中使用以下内容获取结果:

类型:电气/电子 - 项目:计算机 - 半径:100 - 邮政编码:n11hl

前一个我做的那个现在不起作用现在可以看到:http://www.focus-on-plants.com/locator_iconed.php (可以在表格中使用任何参数)

更新:

回复谢菲回答:

在创建地图时定义了infowindow:

var myLatLng = new google.maps.LatLng(51.470, -0.00);
    var bounds = new google.maps.LatLngBounds();
    var geocoder = new google.maps.Geocoder();
    var gotIcons = false;
    var iconImageArray = {image:{}, size:{}, sizeX:{}, sizeY:{}, origin:{}, originX:{}, originY:{}, anchorpoint:{}, anchorpointX:{}, anchorpointY:{}};
    var iconShadowArray = {image:{}, size:{}, sizeX:{}, sizeY:{}, origin:{}, originX:{}, originY:{}, anchorpoint:{}, anchorpointX:{}, anchorpointY:{}};
    var iconShapeArray = {poly:{}, coord:{}};
    var myIconArray = {icon:{}, shadow:{}, shape:{}}
    var infowindow = new google.maps.InfoWindow();
    var markersArray = []; // to store out markers
    var markersPosArray = []; // to store lat/lang of markers for zooming function
    var markersInfoArray = [];
    // MAP OPTIONS
    var myOptions = {
        zoom: 5,
        center: myLatLng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl: true,
        mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
            position: google.maps.ControlPosition.BOTTOM
        },
        navigationControl: true,
        navigationControlOptions: {
            style: google.maps.NavigationControlStyle.ZOOM_PAN,
            position: google.maps.ControlPosition.TOP_RIGHT
        },
        scaleControl: true,
        scaleControlOptions: {
            position: google.maps.ControlPosition.TOP_LEFT
        }
    };//end map options
    var map = new google.maps.Map(document.getElementById("loc_map"), myOptions);

1 个答案:

答案 0 :(得分:1)

我使用以下代码显示信息气泡:

var info_pane = new google.maps.InfoWindow({
                    content: info,
                    disableAutoPan: false,
                    maxWidth: '300px'
                });
info_pane.open(map, marker);