如果通过单击中断滑动,则不会发生事件'moveend'

时间:2013-12-28 22:04:26

标签: javascript openlayers

这是一张带有地图的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的结果相同。

0 个答案:

没有答案