0

他の要素に対する位置配列([左、上])を直接取得する方法は? 以下のようなことができると思いました:

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

しかし、それは私にエラーを与えます。
したがって、非表示の div を作成するなどの回避策のみを実行し、'ElementPositionedAgainstTo' に対して非表示の div を使用して位置メソッドを実行し、非表示の 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 は非表示要素の配置をサポートしていません

回避策は、代わりに visibility:hidden を使用し、位置を取得してから、div をすばやく非表示にすることです。

于 2012-11-18T17:17:22.257 に答える