这是一张带有地图的page。捕获所有地图事件并在控制台中显示:
<html>
<head>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script>
window.onload = function() {
var layer = new OpenLayers.Layer.OSM();
var map = new OpenLayers.Map('map', {
layers: [layer], zoom: 13,
center: new OpenLayers.LonLat(324002, 6312782)
});
events = ['preaddlayer', 'addlayer', 'preremovelayer', 'removelayer', 'changelayer', 'movestart', 'move', 'moveend', 'zoomstart', 'zoomend', 'changebaselayer', 'updatesize'];
for (e in events) map.events.register(events[e], this, function(evt) { console.log(evt.type); });
}
</script>
</head>
<body>
<div style="width:100%; height:100%" id="map"></div>
</body>
</html>
如果我用鼠标滑动(按下鼠标左键,拖动时拖动和释放按钮)地图,我们会在控制台movestart
中看到几个move
,最后,当地图停止时移动,moveend
,正如所料。
但是,如果我在视图移动时单击,则moveend
不会发生。
为什么?如何解决?
Chrome 31,Firefox 26和Opera 18的结果相同。