可拖动元素掉落在哪里?

时间:2014-10-27 14:46:14

标签: javascript jquery jquery-ui

我使用进行了以下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)。

1 个答案:

答案 0 :(得分:1)

ui变量包含offset属性(包含lefttop值)。

使用document.elementFromPoint函数,我们可以获得该位置上的元素,该元素正是元素被删除的元素:

$someElm.draggable({     
    helper: "clone",         
    stop: function (ev, ui) {
       var dropTarget = $(document.elementFromPoint(ui.offset.left, ui.offset.top));
    }                        
});                          

即使它看起来像黑客,它似乎是唯一的方法(如果有更好的替代后置答案/评论)。

  

Document.elementFromPoint(x, y)

     

xy指定要检查的坐标,以CSS像素为单位,相对于包含窗口或框架的文档的左上角。

     

从正在调用elementFromPoint方法的文档中返回元素,该元素是位于给定点下的最顶层元素。要获取元素,请通过坐标(以CSS像素为单位)指定相对于包含文档的窗口或框架中最左上角点的点。