Javascript 如何使用jQuery在给定位置获取最顶端的元素?

Javascript 如何使用jQuery在给定位置获取最顶端的元素?,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我有一个可拖动的,在停止事件中,如果它没有被拖动到其他任何东西上,我希望移动到某个边界。问题:droppable处理的drop事件发生在可拖动处理程序的stop事件之后。DragTables的停止处理程序给出了DragTables被拖动到的位置,但我不知道如何确定该位置的元素。有什么想法吗?您可能只需在可拖放元素之间循环,并检查它们的偏移位置。结合每个元素的宽度/高度,您可以计算触发stop事件时可拖动的元素已结束。类似这样的事情(这是未经测试的,在我的头顶上) 函数stopCallback(x

我有一个可拖动的,在停止事件中,如果它没有被拖动到其他任何东西上,我希望移动到某个边界。问题:droppable处理的drop事件发生在可拖动处理程序的stop事件之后。DragTables的停止处理程序给出了DragTables被拖动到的位置,但我不知道如何确定该位置的元素。有什么想法吗?

您可能只需在可拖放元素之间循环,并检查它们的偏移位置。结合每个元素的宽度/高度,您可以计算触发stop事件时可拖动的元素已结束。类似这样的事情(这是未经测试的,在我的头顶上)

函数stopCallback(x,y){
变量$droppables=$(“.droppable”),
containedDraggableAtStop=函数($item,left,top){
var itemL=$item.offset().left,
itemT=$item.offset().top,
itemR=itemL+$item.width,
itemB=itemT+$item.height;
if(top>itemT&&topitemL&&left
您可能只需循环通过可拖放元素并检查其偏移位置。结合每个元素的宽度/高度,您可以计算触发stop事件时可拖动的元素已结束。类似这样的事情(这是未经测试的,在我的头顶上)

函数stopCallback(x,y){
变量$droppables=$(“.droppable”),
containedDraggableAtStop=函数($item,left,top){
var itemL=$item.offset().left,
itemT=$item.offset().top,
itemR=itemL+$item.width,
itemB=itemT+$item.height;
if(top>itemT&&topitemL&&left
您是否可以在此处添加代码(相关的HTML、jQuery和CSS,如果适用),以及?或者,如果您已经回答了这个问题,您可以将这个答案作为一个答案发布吗?您可以在这里添加您的代码(相关的HTML、jQuery和CSS,如果适用),以及?或者,如果你已经回答了这个问题,你能把这个答案作为一个答案发布吗?
function stopCallback (x, y) {
    var $droppables = $(".droppable"),
        containedDraggableAtStop = function($item, left, top) {
            var itemL = $item.offset().left,
                itemT = $item.offset().top,
                itemR = itemL + $item.width,
                itemB = itemT + $item.height;

            if (top > itemT && top < itemB && left > itemL && left < itemR) {
                return true;
            }
            return false;
        },
        numDroppables = $droppables.length,
        i;

    // x, y are the coords passed from the stop function
    for (i = 0; i < numDroppables; i++) {
        if (containedDraggableAtStop($droppables.eq(i), x, y)) {
            return $droppables.eq(i);
        }
    }
    return -1;
}