Javascript拖放....接收对象?

时间:2010-09-15 15:54:53

标签: javascript

我编写了一些代码,以便我可以拖动一个对象,但最终我希望将它放在一个特定的对象上,然后调用一些函数。

当我不知道将哪个实际对象放到它上面时,如何向目标对象添加一个侦听器?

4 个答案:

答案 0 :(得分:0)

我强烈建议使用jquery ui draggable和droppable。没有必要为此重新发明轮子!

http://jqueryui.com/demos/draggable/

http://jqueryui.com/demos/droppable/

答案 1 :(得分:0)

过去我有几种方法可以解决这个问题。它们都依赖于光标在外面你要拖动的元素。

首先,您可以在文档级别定义mouseup事件处理程序,并确定哪个元素是事件的目标。该元素将是您的可拖动项目被删除的元素,您可以从那里处理该事件。

其次,您可以为每个可放置区域定义mouseup事件处理程序。这样可以更轻松地自定义处理程序。

请记住,这两种解决方案都依赖于光标位于您拖动的元素之外。否则,事件的目标将始终是您要拖动的元素。

答案 2 :(得分:0)

以简单的方式,您必须在mousemove上附加一些功能。此函数必须绕过所有dom元素并找到您的元素。但它是DOM,而且它很长。你必须缓存elemetns位置,它会没事的。

答案 3 :(得分:0)

你是否只想在DOM元素上有一个'drop'事件,但是你认为你需要关心被丢弃的东西?

我对类似问题的初步处理方法是从'drop'开始,而不是拖拽,但发现'ondrop'事件不是非常便携,这意味着我应该使用像jQuery这样的框架。参见:

请参阅此处了解有关演示的jQuery UI框架方法:

请参阅此处,了解面向框架的方法,并对该主题进行一些讨论: