在我的jQuery移动web应用程序中,我有一个由Google jQuery驱动的地图。我在上面加了一个黑色边框的圆圈。
如果你用地图直接进入我的应用程序的这个页面,地图在圆心正确地居中。
http://goo.gl/XvLST
如果您先转到我的应用程序的主页(http://goo.gl/0IWgE),然后用地图单击进入该页面的方式,则地图是
circle).
当我从主页点击地图进入页面时,为什么地图会出错,但是如果我直接使用地图访问页面,为什么会正确工作呢?
我只是不能使用Ajax来用data-ajax='false'
加载地图页面。但是,我实际上不能这样做,因为移动应用程序不允许加载非ajax负载。
当我将地图输入Chrome控制台时,google.maps.event.trigger(map, 'resize')
似乎重新定位了它,但我不知道在我的javascript中该在哪里调用它。
发布于 2012-03-22 15:24:43
因为页面实际上是通过ajax加载的(从索引中获得)--您正在使用的页面事件可能是在DOM完全准备好之前调用的。GMaps期望页面准备就绪。
尝试使用除pageinit以外的其他事件。看起来页面可能是一个很好的页面(因为它在任何动画完成后运行) http://jquerymobile.com/demos/1.0/docs/api/events.html
或者,您可以将对映射的调用--调整大小事件--放在页面显示事件中。
发布于 2012-03-19 20:17:27
页面是否在主页和地图之间重新加载?如果不是,如果要创建div或调整div的大小,则需要在div更改后调用google.maps.event.trigger(map, 'resize')
(大小更改或移除显示:无)。(编辑以显示触发事件的代码,感谢@Heitor )
发布于 2012-10-14 21:23:41
调用google.maps.event.trigger(mapObj, "resize");
on pageshow
或pagechange
https://stackoverflow.com/questions/9776761
复制相似问题