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

我可以拖动我的可拖动项目并将它们放在我的droppables上,并从drop事件中的ui.absolutePosition获取放置位置。 我需要知道阻力从哪个位置开始。 我试过在拖动开始事件上获取ui.position但这是null。 我也尝试了ui.position对拖动事件的看法,但这是未定义的。

有任何想法吗?

您应该能够使用.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); } }); 

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

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

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

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