【问题标题】:Jquery UI + Google Maps v3 API only loads after refreshJquery UI + Google Maps v3 API 仅在刷新后加载
【发布时间】:2013-11-12 20:13:32
【问题描述】:

当您单击选项卡时,它应该加载地图,但它只是加载内容 - 除非您刷新页面。我几乎尝试了一切来修复它,但没有成功。

点击这里查看

【问题讨论】:

  • 您在控制台日志Uncaught TypeError: Cannot read property 'offsetWidth' of null main.js:28中有此消息。
  • 请在您的问题中发布(相关)代码(链接很有用,但可能会消失)。

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


【解决方案1】:

函数initialize会在onload之后1秒执行,但是当你点击一个标签时load-event已经被触发并且地图不会被初始化。

从您的代码中删除它(它会强制执行 Anto Jurkovic 评论的错误):

google.maps.event.addDomListener(
window,
'load',
function(){
window.setTimeout(initialize, 1000);
}); 

并将其添加到jqc_fnDone

if($('#map-canvas').length && !$('#map-canvas div').length){initialize();}

它会在地图容器存在时初始化地图,但仍然是空的。

【讨论】:

    【解决方案2】:

    最简单的解决方法!

    在用于访问带有地图的页面的链接上,只需添加 data-no-turbolink

    示例:

    <a href="/contactuspage" data-no-turbolink>Contact Us</a>
    

    问题解决了!我花了几天时间试图找到一个简单的解决方案来解决这个问题。希望对您有所帮助!

    【讨论】:

    • 你确定你的回答与这个问题有关吗?我刚刚注意到你用两个完全相同的帖子回答了 2 个不同的问题。
    • 是的,这是我回答的两个问题的可能解决方案。
    猜你喜欢
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2010-11-28
    • 2014-06-24
    • 1970-01-01
    相关资源
    最近更新 更多