Jquery mobile 和 google maps openinfowidow 加载而不是点击

Posted

技术标签:

【中文标题】Jquery mobile 和 google maps openinfowidow 加载而不是点击【英文标题】:Jquery mobile and google maps openinfowidow on load and not click 【发布时间】:2013-03-26 06:05:05 【问题描述】:

我正忙着在我与 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);
 );
);

加载事件无效。对此有何想法?

【问题讨论】:

【参考方案1】:

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

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

google.maps.event.addListener(map, 'idle', function() 
    // open info window
);

【讨论】:

以上是关于Jquery mobile 和 google maps openinfowidow 加载而不是点击的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Mobile 和 Google Maps API - 地图未加载到设备上

Google maps v3 在 jQuery mobile 和 PhoneGap 上具有自动完成功能

jquery-ui-map 与新版本的 jquery mobile 和 jquery

在显示 jQuery Mobile 页面之前让 Google 地图正确加载

单击打开 jQuery Mobile 面板小部件时的 Google 地图指针

jquery mobile, google map body 高出 100%