使用Mapquest API删除事件

时间:2012-07-20 19:12:28

标签: javascript api mapquest

当我使用backbone.js为移动平台创建单页应用程序时,我有一个项目。我需要在“页面”之间创建几个地图。这很好用,第一张地图显示效果很好,但所有其他地图都显示正常,但没有一个事件有效。 I.E.我无法滚动。适用于桌面上的镀铬。不在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:longitudelatitude在其他地方定义)

0 个答案:

没有答案