0

如何直接检索相对于其他元素的位置数组([left,top])?我想我可以做如下的事情:

var newPos = $.position({
    my: "left top",
    at: "right top",
    of: $(ElementPositionedAgainstTo)
});

但这给了我错误。
所以我只做解决方法,比如创建隐藏的 div,使用隐藏的 div 对 'ElementPositionedAgainstTo' 执行位置方法,然后获取隐藏的 div 的位置。

    function getPopupPosition (parent_el) {
        var jDiv = $("<div id='hidden_div'></div>");
        jDiv
            .appendTo("body")
            .css("position", "absolute")
            .position({
                my: "left top",
                at: "right top",
                of: $(parent_el)
        });
     var thePosition = jDiv.position();
     jDiv.remove();
     return thePosition;
};

有没有更好的方法来做到这一点?

4

1 回答 1

0

jQueryUI 的 .position() 实用程序指出:

jQuery UI .position() 方法允许您相对于窗口、文档、另一个元素或光标/鼠标定位元素,而不必担心父元素的偏移。

注意:jQuery UI 不支持定位隐藏元素

解决方法是改为使用可见性:隐藏,获取位置,然后快速隐藏 div。

于 2012-11-18T17:17:22.257 回答