javascript - Twitter Bootstrap Popover 中的谷歌地图

标签 javascript html google-maps twitter-bootstrap

我正在使用 Twitter 的 Bootstrap,并希望在 popover 中显示 Google map .

现在它的工作方式我正在做这样的事情

$ ->
  $('.thumbnails a.js-popover').popover
    html: true,
    content: ->
      uid = $(this).data('profileUid')
      popover_container = $('.popover-contents:data(profileUid=' + uid + ')')
      _.each window.Maps, (map) ->
        google.maps.event.trigger map, 'resize' // I hoped this would re-draw the map
      popover_container.html()

popover 从隐藏的 .popover-contents div 加载它的内容,并连接到具有数据属性的 a (这样我就可以找到正确的 popover显示)

The map works perfectly, when not in a popover

当不在弹出窗口中时, map 工作得很好,我认为它与通过 jQuery 中的 html() 复制到另一个 DOM 元素有关。 Twitter 的 Bootstrap 不提供 modal opened 回调,我真的不确定如何让 map 工作。

enter image description here

正如您所看到的, map 在完整的个人资料页面上可以正常工作,标记是相同的(rails 部分),并且 javascript 也是共享的 - 我只能假设 GoogleMaps API 真的不喜欢它是 < em>dom 搞砸了,因此导致了问题。

最佳答案

如果您使用弹出窗口,最好的选择可能是使用 google's static API并避免与交互式 map 相关的麻烦。从文档中借用一个非常的简单案例,您可能会这样做:

var options = { content: '<img src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap&sensor=false">' };

$('#example').popover(options)

将其包装成一个可重用的函数会产生:

var getMap = function(opts) {
  var src = "http://maps.googleapis.com/maps/api/staticmap?",
      params = $.extend({
        center: 'New York, NY',
        zoom: 14,
        size: '512x512',
        maptype: 'roadmap',
        sensor: false
      }, opts),
      query = [];

  $.each(params, function(k, v) {
    query.push(k + '=' + encodeURIComponent(v));
  });

  src += query.join('&');
  return '<img src="' + src + '" />';
}

var content = getMap({center: 'Fritz-Walter Stadion, Kaiserslautern'});
$('#example').popover({ content: content })

关于javascript - Twitter Bootstrap Popover 中的谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545768/

相关文章:

javascript - "Photoswipe"画廊在小图像的情况下在图像点击时自行关闭

Javascript 元素隐藏不起作用

javascript - 如何在列表项旁边的垂直线上均匀对齐复选框?

java - map 应用程序在打开时崩溃

android - 如何将 map.jar 添加到 android 中的 myproject 中?

jquery - 谷歌地图出现灰色方 block

javascript - jPlayer - 使用 setMedia() 设置媒体 URL

javascript - 如何将html特殊字符转换为普通HTML?

javascript - 阻止 CckEditor 添加样式

javascript - 如何自动过度滚动