【问题标题】:Get the coordinates of a drop event in Javascript?在Javascript中获取放置事件的坐标?
【发布时间】:2010-04-29 02:05:10
【问题描述】:

我制作了一个 Javascript 库,可以让我将标记从拖拽区拖到一个或多个拖放区。

问题是... mouseup 事件发生在我正在拖动的标记上,而不是 dropzone。

我如何检测标记放置在哪个放置区,以及放置在什么坐标上?

这是我的脚本:

http://dl.dropbox.com/u/186012/demos/dragger/drag.html

【问题讨论】:

  • 您可以通过使用 Scriptaculous 或 jQuery 并让库为您处理这件事,让您的生活更轻松。
  • 我尝试了所有解决方案,但我需要的效果有点特别。我不想拖动我单击的项目。我需要一个新的标记实例出现并被拖动到它在另一个元素上的位置,比如地图或画布。我无法用任何流行的图书馆做到这一点

标签: javascript events drag-and-drop dom-events


【解决方案1】:

如果拥有一个新实例是您唯一需要的特殊事物...您可以使用 jQuery 库来克隆您最初点击的标记,然后将该克隆拖到您想要的位置。

您还可以根据需要使用 jQuery 修改克隆标记的属性。

【讨论】:

  • 是的,这正是我在我发布的示例中所做的:dl.dropbox.com/u/186012/demos/dragger/drag.html 问题是我需要另一个特殊的东西:获取接收丢弃的元素的 Id。我得到了被拖动元素的 Id,因为当 mouseup 发生时它是鼠标下方的那个。这不是我想要的。
  • 我开始怀疑这样做的唯一方法是计算 mouseup 事件的整个页面坐标并开始将其与 dropozone 元素的位置、大小和 zIndex 进行比较...
  • 我认为如果您在问题中使用关键字“重叠”或“相交”,我会更早得到它:)您正在寻找的可能在这里:plugins.jquery.com/project/overlaps
【解决方案2】:

这实际上不是您问题的直接答案,但为什么要重新发明一个已经在许多流行且强大的 JavaScript 库(如 JQuery)中解决的问题的解决方案。

【讨论】:

  • 我尝试了所有解决方案,但我需要的效果有点特别。我不想拖动我单击的项目。我需要一个新的标记实例出现并被拖动到它在另一个元素上的位置,比如地图或画布。我无法使用任何流行的库来做到这一点。
猜你喜欢
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
相关资源
最近更新 更多