2009-08-13 100 views
3

我可以拖動我的可拖動項目並將它們放在我的droppables上,並從drop事件中獲取 ui.absolutePosition的放置位置。我需要知道拖動從哪個位置開始。 我已經嘗試在拖動啓動事件上獲取ui.position,但是這是空的。我也在拖動事件上嘗試了 ui.position,但這是未定義的。JQuery UI Draggable如何獲取拖動開始位置

任何想法?

回答

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); 
      } 
}); 
+0

謝謝。保存client.x,client.y給出我需要的。 – WJS 2009-08-13 13:46:45

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) +")" 
    ); 
} 
相關問題