2012-02-01 37 views
0

這裏是我工作的一個樣本小提琴 - http://jsfiddle.net/cuvsc/1/jQuery的動態div的追加從PHP循環

它做什麼,它應該。它將子div附加到父div,並將子級的偏移設置爲相對於父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頁面粘貼。

我找不出我缺少的東西。有任何想法嗎?也許它也會幫助其他人定位太多或php與jQuery一起使用?

+0

你能提供來自瀏覽器而不是php的呈現html嗎? – 2012-02-01 18:46:35

+0

正在生成的元素的html位於jfiddle中。這兩個孩子div是php的結果是

123

303
user1159677 2012-02-01 19:29:20

回答

0

小提琴和PHP代碼將生成的html之間的區別在於小提琴具有position: absolute的子元素,但由php生成的html設置爲postion: relative

+0

對不起,錯誤的複製粘貼,因爲我試圖不同的東西。我將上面的代碼更新爲位置:絕對,因爲它在我的本地代碼中。但它不會那樣工作。我現在正在用螢火蟲仔細檢查代碼,如果有任何事情發生,我將會發布。 – user1159677 2012-02-01 19:34:03