使用javascript,为什么我的onmouseover事件没有被解雇?

时间:2011-12-09 23:32:32

标签: javascript-events javascript

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

我无法让这个工作,因为我的onmouseover事件没有被触发,因为我的克隆元素阻碍了。我的克隆总是跟随鼠标指针。如何将事件触发到克隆下的元素?

2 个答案:

答案 0 :(得分:3)

onMouseDown/Up是在要拖动的元素上定义的。拖动对象下方的元素将无法捕获onMouseOver事件。为什么?因为您正在拖动对象,该对象只能捕获onMouseOver事件。

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

答案 1 :(得分:0)

在主体上使用mousemove事件,检查对象clientX和clientY的鼠标坐标。