Jquery相对于可以移动的元素的定位

时间:2012-04-01 23:29:00

标签: jquery css jquery-ui position

我正在使用jquery定位(my,at,of)将div显示为按钮的“下拉”。代码如下:

if ( $('#myDiv').is(':hidden') ) {
    $('#myDiv').show().position({
        my: "left top",
        at: "left bottom",
        of: $("#myButton"),
        "offset" : "0 -2px"
    });

} else {
    $('#myDiv').hide();
}

当下拉div可见时,按钮可以移动(例如,动态添加/删除其他内容,按下按钮)。问题是,当发生这种情况时,只有按钮移动并且div保持不变,因此div不再相对于按钮正确定位。

以下是一个示例小提琴:http://jsfiddle.net/2BUZU/

是否有漂亮的方式让div始终按下按钮?

我似乎找不到这个问题的答案,但我确信我不是唯一遇到这个问题的人。

谢谢!

2 个答案:

答案 0 :(得分:1)

我通过添加容器div和animate函数实现了这一点。不确定这是否是您所追求的那种解决方案......

请参阅jsFiddle DEMO

希望它有所帮助!

第二个建议
找到position()元素的myButton并适当移动myDiv

请参阅jsFiddle DEMO 2

我觉得你可以使用位置和动画功能实现你需要达到的目标。

同样,我希望这会让您更接近您的解决方案。

答案 1 :(得分:0)

虽然我想让下拉div总是自动按下它的按钮,但在我的情况下似乎并不是一个简单的方法。我知道什么会导致按钮在90%的时间内移动,所以当我触发这个时,我会重新定位div。所以现在效果还不错。感谢提示人们。