JQuery UI Draggable如何获得拖动开始位置

时间:2009-08-13 13:01:05

标签: jquery

我可以拖动我的可拖动物品并将它们放在我的droppables上并从中获取掉落位置 drop事件中的ui.absolutePosition。我需要知道阻力从哪个位置开始。 我试过在拖动开始事件上获取ui.position但是这是null。我也试过了 关于拖动事件的ui.position但是这是未定义的。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您应该可以使用.droppable的drop函数中的ui.draggable来获取您所追求的内容。

ui.draggable.offset()

也许

如果你想在拖动开始时确切的鼠标位置,你可以在.draggable()启动函数上使用event.clientX和event.clientY

$('selector').draggable({ ...options...
      start: function(event, ui) {
                   alert("You clicked x:" + event.clientX + " y:" + event.clientY);
             }
});

答案 1 :(得分:2)

可能更好的方法是在数据中保存元素的起始位置

jQuery("selector").draggable({
    start: function(event, ui) {
        // Log start dragged position to element data
        jQuery(this).data('startPosition', jQuery(this).position());
    }
});

所以你可以在以后或在其他功能中使用它......例如

stop: function(event, ui){
     Startpos = jQuery(this).data("startPosition");
     alert("DragStart : Left("
          + parseInt(Startpos.left) 
          + ")Top(" + parseInt(Startpos.top) +")"
     );
}