2011-03-16 259 views
3

我想定位ElementA旁边ElementB喜欢这里规定: How to position one element relative to another with jQuery?jQuery的:位置元素旁边另一个解决它有

唯一的区别是,我想ElementA走动与ElementB如果ElementB移动。

是否有可能以某种方式将某个元素的位置修复到另一个元素的位置?每次移动ElementB时,重新计算ElementA的位置是不可行的。

UPDATE

在我的情况,ElementB是td元素。显然,td元素不能相对定位,这就是为什么元素A不随元素B移动。一个简单的解决方法是简单地在ElementB中添加相对定位的div,然后将ElementA放置在那里。

回答

3

编辑:在这里寻找一个活生生的例子:http://jsfiddle.net/jPUbh/

你的HTML改成这样:

<div id="placeholder" style="position:relative"> 
    <div id="placeholder-text">Hover over me to show the menu here</div> 
    <div style="position: absolute; display: none; top: 20px; left: 0px" id="menu"> 
     <!-- menu stuff in here --> 
    </div> 
</div> 

和你的JS这样:

$("#placeholder-text").mouseover(showMenu); 

var showMenu = function(ev) { 
    $("#menu").show(); 
} 

当父元素(int this case div#placeholder)设置为相对时,其内部设置为绝对的块级元素将相对于父级定位。因此,请更改div#菜单的顶部和左侧属性以适应您的需求。现在如果div#占位符移动,div#菜单随之移动。

而你的JS在一些CSS上更干净!

此外,ids是完全通用的,可以根据您的需要更改它们:-)如果您在html中更改它们,请更新JS!

+0

嗯,它不工作。在我的情况下,ElementA通过javascript被添加到ElementB。这对ElementA的定位有任何影响吗? – ajbeaven 2011-03-16 00:35:41

+0

我添加了一个JSFiddle链接:http://jsfiddle.net/jPUbh/ – moe 2011-03-16 00:37:58

+0

哦,ElementB也是​​ – ajbeaven 2011-03-16 00:43:26

2

如果您ElementAElementB那么这是可能的孩子,它并没有被“内部”这是一个孩子,你可以将相对于父元素位置,使用负坐标把它带到外面。然后移动元素B也应该重新定位孩子。

演示:http://jsfiddle.net/sEGZD/

+0

你能提供样品吗? – bnieland 2011-03-16 00:28:38

+0

@bnieland:增加了一个演示,所有的DIV都是可移动的,父母移动了很多。 – Orbling 2011-03-16 00:41:32

相关问题