0

我正忙着在我与 Jquery Mobile 一起使用的谷歌地图上的地图标记上制作我的信息窗口内容,但我发现我无法自动打开信息窗口。

目前它以点击事件打开,但加载事件无效。

我当前有效的代码如下。

$('#map_canvas').gmap({
 'center': '-26.083478,28.092296',
 'zoom': 15,
 'disableDefaultUI': true
  }).bind('init', function (ev, map) {
   $('#map_canvas').gmap('addMarker', {
    'position': '-26.083478,28.092296',
    'icon': 'images/map_logo.png',
    'bounds': false
   }).click(function () {
    $('#map_canvas').gmap('openInfoWindow', {
     'content': '<div id="siteNotice">' +
     '</div>' +
     '<h1 id="firstHeading" class="firstHeading">Lemon Decor</h1>' +
     '<div id="bodyContent">' +
     '<p>Unit 17, Olympia Gardens<br />' +
     'Olympia Street <br />' +
     'Marlboro</p>' +
     '<p> Tel: 011 262 4116<br />' +
     'Fax: 086 697 4110<br />' +
     'Email: <a href="mailto:info@lemondecor.co.za">info@lemondecor.co.za</a></p>' +
     '</div>' +
     '</div>'
   }, this);
 });
});

如果我将代码更改为

$('#map_canvas').gmap({
 'center': '-26.083478,28.092296',
 'zoom': 15,
 'disableDefaultUI': true
 }).bind('init', function (ev, map) {
  $('#map_canvas').gmap('addMarker', {
   'position': '-26.083478,28.092296',
   'icon': 'images/map_logo.png',
   'bounds': false
 }).load(function () {
  $('#map_canvas').gmap('openInfoWindow', {
   'content': '<div id="siteNotice">' +
   '</div>' +
   '<h1 id="firstHeading" class="firstHeading">Lemon Decor</h1>' +
   '<div id="bodyContent">' +
   '<p>Unit 17, Olympia Gardens<br />' +
   'Olympia Street <br />' +
   'Marlboro</p>' +
   '<p> Tel: 011 262 4116<br />' +
   'Fax: 086 697 4110<br />' +
   'Email: <a href="mailto:info@lemondecor.co.za">info@lemondecor.co.za</a></p>' +
   '</div>' +
   '</div>'
  }, this);
 });
});

load 事件没有影响。对此有什么想法吗?

4

1 回答 1

0

.load()不是事件方法。它是一种触发 AJAX 请求的方法。

如果您想在地图加载后打开信息框,那么您需要在地图加载后执行此操作。我没有使用过gmap,但使用 google maps api 你可以这样做:

google.maps.event.addListener(map, 'idle', function() {
    // open info window
});
于 2013-04-04T14:39:57.373 回答