【发布时间】:2014-11-27 04:00:08
【问题描述】:
我正在开发一个界面,我需要将两个不相关的元素粘在一起的东西。嗯,最重要的元素将是“老板”,另一个称为“员工”的元素将跟随“老板”并相应地改变它的位置。
这是标记:
<div class="boss"></div>
<div class="employee"></div>
<div class="boss"></div>
<div class="employee"></div>
<div class="boss"></div>
<div class="employee"></div>
<div class="boss"></div>
<div class="employee"></div>
这是我写的 jQuery:
$('.boss').each(function( i, obj ){
var Pos = $(this).position();
var ModuleWidth = $(this).outerWidth();
$(this).next('.employee').position({
my: 'right top',
at: 'right top',
of: $(this)
});
});
所以我正在遍历所有 .boss 类并将所有 .employees 与 boss 的右上方对齐。他们应该永远坚持。但是,如果我在 chrome 开发人员工具中从老板那里编辑 html,.boss 元素将变得越来越小并且 .employee 不会相应地重新定位其自身。我想让 .employee 总是重新定位自己。
稍后更新:
http://screencast.com/t/F0RO7ODF 是我正在寻找的那种行为。灰色框是 BOSS,橙色框是 EMPLOYEE。这两个元素有一个包装器,我实际上正在移动包装器。但我想要一个没有包装的解决方案。注意:风琴盒的位置无关紧要。
【问题讨论】:
-
嗯,你为什么不把它们包起来?当然,它们不会移动,因为位置不是基于元素位置,而是基于文档。您需要调用代码来重新计算位置。
-
我不太明白你在说什么。但我不想添加另一个元素来包装它们,因为这会严重污染 HTML。我需要一个完整的 jQuery 解决方案。
-
发布您的 css - 甚至更好 - 一个小提琴,所以我们能够了解您通过布局实现的目标。
-
这里真正的问题是什么?在开发工具中进行编辑,这不是真正的问题,除非您希望您的用户做同样的事情。
-
添加另一个元素会污染HTML?真的吗?添加标记来定义结构如何污染它?
标签: javascript jquery html css positioning