当我使用backbone.js 为移动平台创建单页应用程序时,我有一个项目。我需要在“页面”之间创建几个地图。这工作得很好,显示的第一张地图工作得很好,但是所有其他地图都显示得很好,但没有一个事件工作。IE 我无法滚动。适用于桌面上的镀铬。不在 iPad 上。
查看 MQA.TileMap 的文档,有一个 dispose 函数,但我猜它尚未实现。我尝试使用 MQA.EventManager 重置地图,但无济于事。
示例:第 1 页
<div id="map" style="width: 300px; height: 300px"></div>
<script type="text/javascript">
var options={
elt:document.getElementById('map'),
zoom:15,
latLng:{lng:longitude, lat: latitude},
mtype:'osm',
bestFitMargin:0,
zoomOnDoubleClick:true
};
/*Construct an instance of MQA.TileMap with the options object*/
window.ReConMap = new MQA.TileMap(options);
MQA.withModule('smallzoom', function() {
var basic=new MQA.Poi( {lng:longitude, lat: latitude} );
window.ReConMap.addShape(basic);
window.ReConMap.addControl(
new MQA.SmallZoom(),
new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT, new MQA.Size(5,5))
);
});
</script>
工作得很好。然后我单击一个清除主体和预制件的按钮:
<div id="map2" style="width: 300px; height: 300px"></div>
<script type="text/javascript">
if( window.ReConMap ){
MQA.EventManager.clearAllListeners( window.ReConMap );
window.ReConMap = null;
}
var options={
elt:document.getElementById('map2'),
zoom:15,
latLng:{lng:longitude, lat: latitude},
mtype:'osm',
bestFitMargin:0,
zoomOnDoubleClick:true
};
/*Construct an instance of MQA.TileMap with the options object*/
window.ReConMap = new MQA.TileMap(options);
MQA.withModule('smallzoom', function() {
var basic=new MQA.Poi( {lng:longitude, lat: latitude} );
window.ReConMap.addShape(basic);
window.ReConMap.addControl(
new MQA.SmallZoom(),
new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT, new MQA.Size(5,5))
);
});
</script>
这显示得很好,但所有的滚动事件都不起作用。(我发现它适用于 Chrome,但不适用于 Android 或 iOS 设备)
我知道这是一个长远的问题,但任何帮助都会很棒。
请注意:问题不在于显示的地图。只是事件不起作用。并非所有代码都在这里(exp:longitude
并latitude
在其他地方定义)