如何知道拖动元素在哪个元素之上?

Posted

技术标签:

【中文标题】如何知道拖动元素在哪个元素之上?【英文标题】:How to know the dragging element is over which element? 【发布时间】:2011-05-13 17:40:41 【问题描述】:

我对 jQuery Drag&Drop 有疑问。我有一个可拖动的元素和很多 dropTarget,所以我只想知道当我拖动时,我的拖动元素在哪个元素上方?

顺便说一句,Firefox 提供 event.originalTarget 指向一个 DOM 元素,但它等于 Google Chrome 中的“未定义”。

有什么建议吗?

谢谢。

【问题讨论】:

【参考方案1】:

查看您的 droppable 上的 over 事件。

$('#droppableid').droppable(
    over: function(event, ui) 
        log('You are over item with id ' + this.id);
    
);

例如here。

【讨论】:

我应该知道元素的拖放细节。当用户拖动时,我想在 dropable 之前或之后附加一个创建的元素。顺便说一句,在这种情况下,我总是使用 dropable 词,但“可放置”元素不是 jQuery 可放置的。它们只是跨度元素。 这会告诉你什么时候over 可放置的东西 - 即它被拖动的时候 - 而不是它被放置的时候。没有关于可拖动的信息告诉你它已经结束了,也没有关于普通 span 元素的任何信息 - 所以我建议让你的 span 元素“可放置”并使用上面的 over 方法。要在元素之前或之后追加,可以使用 before 和/或 after jquery 方法。 api.jquery.com/before

以上是关于如何知道拖动元素在哪个元素之上?的主要内容,如果未能解决你的问题,请参考以下文章

如何判断输入范围元素在拖动时是增加还是减少

浏览器如何知道哪个元素应该获得点击或悬停事件?

Touchesmoved - 一次拖动更新多个元素

排序时添加了哪个类?

HTML5 Canvas元素绘制地图,如何实现显示鼠标所移动地方名称?

如何使用 HTML5 使某些元素可拖动和其他可放置?