使用JavaScript,为什么我的onmouseover事件没有被触发

Using JavaScript, why is my onmouseover event not being fired?

本文关键字:事件 onmouseover JavaScript 为什么 我的 使用      更新时间:2023-09-26

我正在为一个学校项目编写一个JavaScript库,它将允许您实现拖放。我已经实现了拖动。当用户拖拽一个可拖拽对象时,我创建了一个部分透明的对象克隆,该对象跟随他们的鼠标指针,直到他们抬起鼠标(onmouseup)。当他们拖拽一个可拖放的对象时,我希望有一个视觉效果,向用户显示他们可以将对象拖放到那里。
jQuery UI实现了这一点:http://jqueryui.com/demos/droppable/视觉反馈

我不能得到这个工作,因为我的onmouseover事件没有被解雇,因为我的克隆元素是在方式。我的克隆总是跟着鼠标指针走。如何使事件触发到克隆下的元素?

onMouseDown/Up是在您要拖动的元素上定义的。被拖动对象下面的元素将无法捕获onMouseOver事件。为什么?因为你正在拖拽一个对象,而这个对象只能捕获onMouseOver事件。

因此,为了检测目的地,也许您应该创建一个脚本来计算可放置对象的坐标并存储它们。然后搜索鼠标坐标是否在droppableObjectCoordinates内,在鼠标左键释放后,将拖动的内容放到正确的位置。

在body上使用一个mousmove事件,根据对象clientX和clientY检查鼠标坐标。