使用方法position()检索相对于其他元素的位置

时间:2012-11-18 17:13:07

标签: jquery popup position

如何相对于其他元素直接检索位置数组([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;
};

有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

jQueryUI的.position()实用程序声明:

  

jQuery UI .position()方法允许您相对于窗口,文档,另一个元素或者   光标/鼠标,无需担心偏移的父母。

     

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

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