3

我在 Internet Explorer 11 中遇到了鼠标拖动事件表单 ArcGIS API for JavaScript 3.9 的问题代码如下:

map.on("mouse-drag", zobraudalost);
    
function zobraudalost() {
    alert("test");
}

问题是,这个事件不会在 IE 11 上触发(以及鼠标拖动开始、鼠标拖动结束)。但在其他浏览器上它工作正常(IE9、Firefox、Chrome)。另一个问题是其他鼠标事件(单击、鼠标移动等)在 IE 11 上运行良好,因此问题仅在于鼠标拖动。

你见过这样的问题吗?您知道 IE 11 中是否有一些禁用鼠标拖动事件的安全设置?

4

2 回答 2

2

嗯,这个问题与 ArcGis JS API 版本有关。

我只是将 API 3.9 更新到 3.16,它也开始在 IE 中工作。

这是正在运行的提琴手链接以进行验证。

提琴手:https ://jsfiddle.net/vikash2402/j6h00uyt/1/

我在IE11、chrome 和 firefox 中进行了验证。

var map;

require(["esri/map", "dojo/domReady!"], function(Map) {
    map = new Map("map", {
        basemap: "topo",
        center: [-122.45, 37.75], // longitude, latitude
        zoom: 13
    });
    
    map.on("mouse-drag", drag);
    
    function drag() {
        alert("mouse-drag");
    }
});
html, body, #map {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
}
<link href="https://js.arcgis.com/3.16/esri/css/esri.css" rel="stylesheet"/>
<script src="https://js.arcgis.com/3.16/init.js"></script>


<body>
    <div id="map"></div>
</body>

希望这会帮助你:)

于 2016-05-02T10:15:45.137 回答
1

我在尝试在 IE11 中捕获 mouseup 时遇到了类似的问题。是我发现有效的解决方案:

更改为您可能想要的拖动事件。

if(window.PointerEvent) {
  elm.addEventListener("pointermove", foo);
} else if (window.MSPointerEvent) {
  elm.addEventListener("MSPointerMove", foo);
} else {
  elm.addEventListener("mousemove", foo);
}

不是您的确切解决方案,但以上的组合应该可以做到。

于 2014-11-20T19:43:16.953 回答