2011-05-10 98 views
1

我有jquery draggable/droppable处理包含和帮助程序选项集。我想要做的是将放置项目的顶部和左侧参数存储在两个变量中。jquery可拖动的位置 - 克隆

我已经在下面的例子中实现了这一点(将新文档图标拖入框中),但是返回的位置是相对于原始图标而不是父DIV的位置。图标和可放置框都是绝对定位的。

http://www.instructuk.com/drop.php

有谁知道如何获得相关的父,而不是图标的位置?

回答

8

你必须做计算自己:

var 
    draggableDocumentOffset = ui.helper.offset(), 
    droppableDocumentOffset = $(this).offset(), 
    left = draggableDocumentOffset.left - droppableDocumentOffset.left, 
    top = draggableDocumentOffset.top - droppableDocumentOffset.top; 

alert('Item was dropped at - Left: ' + left + ', Top: ' + top); 
+0

这太好了,谢谢Brian。 – Rob 2011-05-11 08:02:33

0

它也许不是最漂亮的解决方案,但你可以得到降的位置在文件中:

x=event.pageX; 
y=event.pageY; 

然后使用droppble区域的坐标从x和y来。减去。

dx=$("#droparea").offset().left;  
dy=$("#droparea").offset().top;  
var left=x-dx;   
var top=y-dy; 

ķ

+0

注意,这个计算的输出将改变基于这样您将光标的图标,当你开始拖动。 – brianpeiris 2011-05-10 17:05:33

+0

的确如此。你的解决方案要好得多。 – kwicher 2011-05-10 17:27:16