以下是我工作的示例小提琴 - http://jsfiddle.net/cuvsc/1/
它做了它应该做的事情。它将子div附加到父div并将child的偏移设置为相对于父div(不是body) 所以当我在父div上面添加br或p标签时,它不会影响父节点中的childs位置。
现在的问题是,当我从php数据库调用生成jQuery代码时,子div的位置不再相对于父级保持不变。
这可能来自客户端服务器端问题以及首先执行的操作吗?小提琴中的代码是来自数据库的代码。
也许我的选择器错了?
这是代码
<?
while ($row = $result->fetch_object()) {
$dbchildNumber=$row->dbChildNumber;
$cords=$row->coordTopLeft;
?>
<div id="child_<?= $dbchildNumber ?>" class="multidraggable" style="position: absolute;">
<?=$boothNumber ?>
</div>
<?php
$i++;
}
?>
用于定位的父div和jquery代码
while ($row = $result->fetch_object())
{
$arrPos = explode(",", $row->coordTopLeft);
echo "$('.parent').append($('#child_" . $row->childNumber . "'));\n\n";
echo "$('#child_" . $row->childNumber . "').offset({left:" . $arrPos[0] . ",top:" . $arrPos[1] . "});\n\n";
$i++;
}
是从php页面剪切并粘贴的。
我无法弄清楚我错过了什么。有任何想法吗?也许它也会帮助其他人定位或者jQuery使用php?
答案 0 :(得分:0)
由PHP代码生成的小提琴和html之间的区别在于小提琴具有position: absolute
的子元素,但php生成的html设置为postion: relative
。