我在頁面上有一個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);
});
}
你可以添加一個jsfiddle嗎? – 2013-05-07 09:00:15
請注意,反覆調用'$('#'+ myBox)'是一個很大的性能問題,並且會產生難看的代碼。將DOM元素緩存在局部變量中,並將多個CSS屬性作爲對象傳遞 – Bojangles 2013-05-07 09:07:01
我同意@Bojangles,你可以像這樣將它們合併爲一個'$('#'+ myBox).css({'padding':data.e + 'px','border':data.a +'px'+ data.b data.d}).width(outerwid);'這樣就不需要每次查詢DOM並過濾結果。 – 2013-05-07 09:15:08