0

我正在构建一个拖放应用程序。我正在尝试在移动项目之前获取要拖动的项目的起始位置。

当应用程序启动时,我使用'$(document).ready()',然后遍历元素。但是,当触发此事件时,CSS 中的 left 和 top 位置似乎还没有设置。这是我用来迭代的代码:

var t;
$('.puzzle_piece').each(function(){
    t = $(this);
    t.startX = t.position.left;
    t.startY = t.position.top;
});

我尝试使用 'position' 和 '.css('left')' 来获取值。

我注意到的一件事是,当我在其中放置警报时,警报会在布局之前触发,甚至似乎在浏览器窗口中开始。

如何获得这些元素的起始位置?

4

2 回答 2

3

position()是一个函数。采用:

t.startX = t.position().left;
t.startY = t.position().top;
于 2013-05-22T07:01:27.523 回答
2

如果您希望它与文档相关,请使用.offset(). 这很可能是您需要的。

如果您希望它相对于偏移父元素(位置为 、 或 的父元素fixedrelative,请absolute使用.position().

于 2013-05-22T07:01:39.423 回答