2013-05-07 109 views
0

我在頁面上有一個div,並且有一個顯示圖層的按鈕。在該圖層上,我有按鈕來添加邊框,並從div的內容到邊框增加填充。增加填充後css邊框消失

當該用戶點擊「保存」時,圖層會再次隱藏,主頁面上的原始div將更新爲新的邊框細節。

我使用ajax將詳細信息發送到數據庫,然後在主頁上再次調用它們作爲刷新。

我遇到的問題是,當原始div從數據庫抓取更改的細節並更新原始div時,如果有任何增加的填充,底部和左邊框消失。

現在我不確定這是否與原始div的寬度小於寬度加上填充相關,還是存在另一個問題。

我試圖通過使用jquery outerWidth設置寬度以匹配具有填充和邊框的div,但左側和底部仍然不顯示。

如果我刷新頁面,他們在那裏。

這是後更新原有的DIV功能:

function UpdateElementOfParentBorder(box_id, page_ref, template_ref, image_box) { 
    var myBox = "image"+box_id;  
    $.getJSON("get_border_content.php", { box_id: box_id, page_ref: page_ref, template_ref:template_ref }) 
    .done(function(data)  
{                
     $('#'+myBox).css('padding',data.e+'px'); 
     $('#'+myBox).css('border-width', data.a+'px');  
     $('#'+myBox).css('border-color',data.b); 
     $('#'+myBox).css('border-style',data.d); 
     var outerwid=$('#'+myBox).outerWidth(false); 
     $('#'+myBox).width(outerwid);  

    });  
} 
+3

你可以添加一個jsfiddle嗎? – 2013-05-07 09:00:15

+0

請注意,反覆調用'$('#'+ myBox)'是一個很大的性能問題,並且會產生難看的代碼。將DOM元素緩存在局部變量中,並將多個CSS屬性作爲對象傳遞 – Bojangles 2013-05-07 09:07:01

+0

我同意@Bojangles,你可以像這樣將它們合併爲一個'$('#'+ myBox).css({'padding':data.e + 'px','border':data.a +'px'+ data.b data.d}).width(outerwid);'這樣就不需要每次查詢DOM並過濾結果。 – 2013-05-07 09:15:08

回答

2

設法排序了這一點。我增加了圖像的大小,因此它不再適合外部div的contrains,所以重疊了底部和左邊界。我修正了它,但改變了外部div的寬度和高度,並將圖像的寬度和高度設置爲100%

+0

真棒,你發現了。備查;接受你自己的答案作爲正確答案。這樣可以關閉這個問題。 – Jefferson 2013-05-08 09:42:22

+0

我必須等2天才能接受我自己的答案 – 2013-05-09 10:34:13