我使用jqueryui进行了以下draggable
调用:
$someElm.draggable({
helper: "clone",
stop: function (ev, ui) {
/* where was this dropped? */
}
});
在停止处理程序上,我需要放置目标。我不使用droppable,但只能使用draggable。
那么,我怎样才能获得掉落目标?
ev.target
似乎是被拖拽的元素。
通过 target 我的意思是拖放拖放的顶部元素(拖动停止)。这可能与ev.target.parent()
不同。
与点击处理程序建立关联:
div.foo > div.bar
点击div.foo
上的点击会获得div.bar
上的点击次数,但如果点击是在ev.target
元素上完成,则div.bar
将为div.bar
它将是div.foo
)。
答案 0 :(得分:1)
ui
变量包含offset
属性(包含left
和top
值)。
使用document.elementFromPoint
函数,我们可以获得该位置上的元素,该元素正是元素被删除的元素:
$someElm.draggable({
helper: "clone",
stop: function (ev, ui) {
var dropTarget = $(document.elementFromPoint(ui.offset.left, ui.offset.top));
}
});
即使它看起来像黑客,它似乎是唯一的方法(如果有更好的替代后置答案/评论)。
Document.elementFromPoint(x, y)
x
和y
指定要检查的坐标,以CSS像素为单位,相对于包含窗口或框架的文档的左上角。从正在调用elementFromPoint方法的文档中返回元素,该元素是位于给定点下的最顶层元素。要获取元素,请通过坐标(以CSS像素为单位)指定相对于包含文档的窗口或框架中最左上角点的点。