Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测窗口上的拖动事件_Javascript_Jquery_Html_Drag And Drop - Fatal编程技术网

Javascript 检测窗口上的拖动事件

Javascript 检测窗口上的拖动事件,javascript,jquery,html,drag-and-drop,Javascript,Jquery,Html,Drag And Drop,我拼命想弄明白,但我想不出正确的方法 我试图为用户提供通过将图片拖放到浏览器中来更改背景图片的功能。但是,我无法正确检测拖动事件。使用时 $(window).on 'dragenter', (e) => console.log e.target $(window).on 'dragleave', (e) => console.log e.target 我总是在单个DOM元素上触发事件,但从不在窗口/主体本身上触发事件,这意味着如果我的DOM元素/容器/包装器没有覆盖整个窗口

我拼命想弄明白,但我想不出正确的方法

我试图为用户提供通过将图片拖放到浏览器中来更改背景图片的功能。但是,我无法正确检测拖动事件。使用时

$(window).on 'dragenter', (e) =>
  console.log e.target
$(window).on 'dragleave', (e) =>
  console.log e.target
我总是在单个DOM元素上触发事件,但从不在窗口/主体本身上触发事件,这意味着如果我的DOM元素/容器/包装器没有覆盖整个窗口,它就不能正常工作。我知道这是可能的,因为GMail可以让它以某种方式工作,但我真的不知道我在这里做错了什么


谢谢

如果我正确解释了您的问题,您需要将事件绑定到$(文档)。由于事件的传播,所有的东西最终都会出现在文档中。如果您只想拖动页面的特定部分,请尝试使用类/类选择器。

谢谢您的回答。我将它绑定到窗口/文档和正文上,因为它会冒泡。然而,问题是它似乎没有做到这一点。问题还在于,即使我得到了dragleave事件,目标也永远不是它自己的身体/窗口,所以我永远不知道它实际上什么时候离开窗口,对吗?嗯。。。真奇怪。它应该会起泡。你用的是stopPropogations吗?这些有时会把事情搞得一团糟。你说目标不在窗口是什么意思?看起来您可以简单地使用e.target…是的,我使用jquery并检查e.target,如上所示,但它从不冒泡。。。我想象我的站点上的soemthing正在捕获和防止默认,但我没有任何其他侦听器注册到这些事件上……正如我所读到的,没有一个拖动事件冒泡。