Javascript 工具提示内容未定义-谷歌地图

Javascript 工具提示内容未定义-谷歌地图,javascript,google-maps,Javascript,Google Maps,我在谷歌地图中悬停指针时添加了工具提示显示代码。它显示工具提示,但内容未定义。如何将指针对应的内容放入工具提示框,代码为: function initialize() { var myOptions = { zoom: 11, center: new google.maps.LatLng(29.7,-95.4), mapTypeId: google.maps.MapTypeId.ROADMAP } var m

我在谷歌地图中悬停指针时添加了工具提示显示代码。它显示工具提示,但内容未定义。如何将指针对应的内容放入工具提示框,代码为:

function initialize() {

      var myOptions = {
        zoom: 11,
        center: new google.maps.LatLng(29.7,-95.4),
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }

      var map = new google.maps.Map(document.getElementById("salon_map"), myOptions);

      var locations = [
         __newmapdetls__
      ];

      for (var i = 0; i < locations.length; i++) {
        var location = locations[i];
        var image = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+location[3]+"|FF0000|000000",
        new google.maps.Size(20, 34),
        new google.maps.Point(0, 0),
        new google.maps.Point(10, 34));


        var myLatLng = new google.maps.LatLng(location[1], location[2]);
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            icon: image,
            title: location[0],
            zIndex: location[3],
            tooltip:"testinggg"+i
        });

        google.maps.event.addListener(marker, 'mouseover', function() {
            infowindow1.open(map, this);
        });
        google.maps.event.addListener(marker, 'mouseout', function() {
            infowindow1.close(map, this);
        });
        var infowindow1 = new google.maps.InfoWindow({
            content:  "'"+this.tooltip+"'"
        });
      }
    }
url也是:

使用以下代码:

var infowindow1 = new google.maps.InfoWindow({
    content:  "'"+marker.tooltip+"'"
});
电子数据交换:

无法在信息窗口中获取标记的属性。因此,您需要在其他变量中定义内容。

使用以下代码:

var infowindow1 = new google.maps.InfoWindow({
    content:  "'"+marker.tooltip+"'"
});
电子数据交换:


无法在信息窗口中获取标记的属性。因此,您需要在其他变量中定义内容。

在查看页面源代码时,我注意到以下几点:

您的页面正在加载jQuery 1.10.1和1.7.2。但它没有使用noConflict。因此,这两个jQuery版本相互影响。 您还加载了MapsAPI的三个副本:版本3的两个副本和不推荐的版本2 API的一个副本。 现在谈谈你的问题:

使用闭包保存标记循环每次迭代的变量。您只需在每次迭代中调用一个函数就可以做到这一点。 调用infowindow.open时,请使用marker,而不是使用此选项。在这种情况下,此标记和标记可能相同,但使用标记以保持一致性。 infowindow的.close方法不接受任何参数。 创建标记时不要设置工具提示属性。这可能有效,但没有文档记录您可以以这种方式添加自己的属性。相反,只需使用局部变量或参数作为工具提示。 我将在添加事件侦听器之前创建infowindow。实际上,这两种顺序都可以正常工作,因为事件侦听器是异步的,但最好先查看创建的infowindow。 因此,将for循环更改为:

也就是说,当您打开一个信息窗口以响应将鼠标移到标记上时,您可能不喜欢得到的结果。如果记号笔靠近窗户顶部怎么办?页面将立即移动以使信息窗口适合屏幕,现在标记将不再位于鼠标下方


创建标记时,您已经在设置title属性。这将导致鼠标悬停在标记上时出现正常的浏览器工具提示,并且不会导致地图像信息窗口那样移动。有没有理由不直接使用工具提示而不是信息窗口?您可以删除所有的infowindow代码,或者像往常一样单击一下infowindow就可以打开。

在查看页面源代码时,我注意到以下几点:

您的页面正在加载jQuery 1.10.1和1.7.2。但它没有使用noConflict。因此,这两个jQuery版本相互影响。 您还加载了MapsAPI的三个副本:版本3的两个副本和不推荐的版本2 API的一个副本。 现在谈谈你的问题:

使用闭包保存标记循环每次迭代的变量。您只需在每次迭代中调用一个函数就可以做到这一点。 调用infowindow.open时,请使用marker,而不是使用此选项。在这种情况下,此标记和标记可能相同,但使用标记以保持一致性。 infowindow的.close方法不接受任何参数。 创建标记时不要设置工具提示属性。这可能有效,但没有文档记录您可以以这种方式添加自己的属性。相反,只需使用局部变量或参数作为工具提示。 我将在添加事件侦听器之前创建infowindow。实际上,这两种顺序都可以正常工作,因为事件侦听器是异步的,但最好先查看创建的infowindow。 因此,将for循环更改为:

也就是说,当您打开一个信息窗口以响应将鼠标移到标记上时,您可能不喜欢得到的结果。如果记号笔靠近窗户顶部怎么办?页面将立即移动以使信息窗口适合屏幕,现在标记将不再位于鼠标下方


创建标记时,您已经在设置title属性。这将导致鼠标悬停在标记上时出现正常的浏览器工具提示,并且不会导致地图像信息窗口那样移动。有没有理由不直接使用工具提示而不是信息窗口?您可以删除所有的信息窗口代码,或者让信息窗口按正常方式单击打开。

在鼠标上设置信息窗口的内容您可以访问特定标记的工具提示属性

 google.maps.event.addListener(marker, 'mouseover', function() {
        infowindow1.setContent(this.tooltip);
        infowindow1.open(map, this);
    });

infowindow1的初始化将移动到循环外部,并将参数保留为空。

在MouseOver上设置infowindow的内容您可以在那里访问特定标记的工具提示属性

 google.maps.event.addListener(marker, 'mouseover', function() {
        infowindow1.setContent(this.tooltip);
        infowindow1.open(map, this);
    });

infowindow1的初始化将移到循环外部,并将参数保留为空。

但它显示了一个错误未捕获引用错误:未定义工具提示@Preethy I已更新编辑的代码。检查一下。信息窗口中出现了问题。你用的是山姆
e信息窗口,现在再次检查。希望这能对您有所帮助。让我们来看看Uncaught TypeError:Object[Object Array]没有方法“open”,但它显示了一个错误Uncaught ReferenceError:tooltip未定义@Preethy我已更新了编辑的代码。检查一下。信息窗口中出现了问题。您对每个应用程序都使用了相同的信息窗口,现在请再次检查。希望这能对您有所帮助。让我们来看看Uncaught TypeError:Object[Object Array]没有方法“open”有一个错误Uncaught ReferenceError:addMarker没有定义addMarker您定义addMarker函数的方式和我的例子一样吗?addMarker还是addMarker?我的代码定义并调用addMarker函数。您的代码是否具有该函数?未捕获引用错误:未定义addMarker那么您将addMarker函数放置在何处?有一个错误未捕获引用错误:未定义addMarker ID您定义addMarker函数,如我的示例所示?addMarker还是addMarker?我的代码定义并调用addMarker函数。您的代码是否具有该函数?未捕获引用错误:未定义addMarker那么您将addMarker函数放置在何处?未捕获类型错误:无法调用未定义类型的方法“setContent”错误:无法调用未定义类型的方法“setContent”