我已经搜索过,无法找到答案。对不起,如果我错过了它。
我有一个页面,其中包含一个带有模板列表的下拉框。用户选择模板后,可用于编辑的各种选项将显示在div中。
当出现编辑选项时,它会强制页面滚动,现在滚动的区域不具有页面的背景颜色。 (我会发布截图,但系统不会让我。)相反,它只是新滚动区域中的一种平坦的灰色。
这是我更新div的.js:
var $j = jQuery.noConflict();
$j(document).ready(function() {
$j("#ecbs_styles").change(function() {
var str = "";
$j("#ecbs_styles option:selected").each(function() {
str = $j("#ecbs_styles").val();
try {
$j.post( ajaxurl, {
data: { template : str },
action: 'ecbs_populate_admin_template'
}, function ( response ) {
//alert(response);
$j("#ecbs-edit-area").html( response );
}
);
}
catch (err) {
alert(err);
}
});
})
.change();
});
其他一切都有效。这只是背景的烦人问题。我一直在寻找类似" ajax update backround"和" ajax重绘背景,"但不断提出任何事情。
到目前为止,我已经尝试过这个:
$j('body').css('background-color', rgb(248, 248, 255));
和此:
document.bgColor='#FFFFFF';
在响应函数中。没有运气。
我已经能够通过设置页面的高度来修复它,使其在选择任何内容之前比编辑框更高。这是一个好的解决方案,但我仍然想知道我是否可以在不刷新页面的情况下动态更新页面背景。
好的,这是php。函数只返回一些格式化的html:
function ecbs_populate_admin_template() {
if ( isset( $_POST['data'] ) && $_POST['data']['template'] != '' ) {
$ecbs_template_id = $_POST['data']['template'];
$ecbs_templates = get_option( ECBS_TEMPLATES );
$ecbs_template = $ecbs_templates[$ecbs_template_id];
die( ecbs_format_template_edit_pane( $ecbs_template_id, $ecbs_template ) );
} else {
die( 'No data to display' );
}
}
表格更新并正确显示,我提交POST数据时是正确的。
答案 0 :(得分:0)
这是因为bgColor
是body
的属性,如:document.body.bgColor = '#fff';
。此外,您忘记了rgb(248, 248, 255)
周围的引号。它的:
$j('body').css('background-color', 'rgb(248, 248, 255)');