Javascript 拖动HTML元素:如果鼠标移动到div之外,如何处理?

Javascript 拖动HTML元素:如果鼠标移动到div之外,如何处理?,javascript,html,Javascript,Html,我正在创建一个可拖动的div,如本例所示: 一切正常,但如果我快速移动鼠标,鼠标离开div,它就会停止跟随鼠标。我使用elem.addEventListener(“mousemove”,函数(e){/*…*/},false)

我正在创建一个可拖动的div,如本例所示:

一切正常,但如果我快速移动鼠标,鼠标离开div,它就会停止跟随鼠标。我使用
elem.addEventListener(“mousemove”,函数(e){/*…*/},false)

我想修复它,不使用JQuery,尝试将
mousemove
事件放在文档上,这样它就可以捕获整个页面上的事件,而不仅仅是当鼠标悬停在div上时

这意味着,每当鼠标移动且该事件位于页面上时,都会触发该事件。

您应该使用:

 elem.addEventListener("mouseup", function(e) {

 }, false);

 elem.addEventListener("mousemove", function(e) {

 }, false);

 elem.addEventListener("ondragstart", function(e) {

 }, false);
您可以在此处找到使用本机JavaScript实现拖放的教程:

我推荐以下HTML5解决方案

下面是JS小提琴:

此外,请查看一个成熟的HTML5解决方案:


如果您支持的浏览器是最新的,我真的会使用HTML5拖放功能。
我真的不明白你的问题(可能是JSFIDLE?)

如果要捕获离开可拖放div的鼠标,可以使用

 droppableDiv.addEventListener("dragleave", function(e) {
 //Do stuff here
 }, false);
如果您的问题是在拖动可拖动div时什么也没有发生,请尝试在可拖动div上放置一个dragover事件

 draggableDiv.addEventListener("dragover", function(e) {
 //Do stuff here
 }, false);

你有没有试过用mouseleave或mouseout?