这是一个带有跨度和按钮的div。范围包含一个复选框及其文本。
<div style="margin-top:10px;" id="dvCopysave">
<span id="spancopy">
<input type="checkbox" id="DynamicCopy" class="checkall" style="font-size: medium;border-width:medium;margin-left:375px" onclick="DynamicCopy_Onclick()" />
<b> Copy data to other panels </b>
</span>
<button id="DynamicAdd" type="button" onclick="DynamicSave_Onclick()">
Save
</button>
</div>
在doucment.ready中,有条件检查并管理可见性:
if (@Model.Target == 2)//Inspection details ->questions
{
var panels='@Model.srPanelList';
var lst=panels.split('|');
$("#id").css("display", "none");
if(lst.length-1>1)
{
document.getElementById("spancopy").style.visibility='visible';
}
else
{
document.getElementById("spancopy").style.visibility='hidden';
}
}
一切正常,但是当不能看到spancopy时,保存按钮的位置不会改变,它仍然是相同的。所以外观和感觉都有小问题......
答案 0 :(得分:4)
那是因为...style.visibility='hidden'
。 visibility:hidden
表示在页面上看不到元素,但是分配空间因此占用空间。因此,您需要使用visibility
而不是display
,而不是...
if(lst.length-1>1)
{
document.getElementById("spancopy").style.display='block';
}
else
{
document.getElementById("spancopy").style.display='none';
}
...
。
display:none
rows.apply(BigQueryIO.writeTableRows().to(new SerializableFunction<ValueInSingleWindow<TableRow>, TableDestination>() {
@Override
public TableDestination apply(ValueInSingleWindow<TableRow> value) {
TableRow row = value.getValue();
TableReference reference = new TableReference();
reference.setProjectId("");
reference.setDatasetId("");
reference.setTableId("tabelname$" + row.get("datefield").toString());
return new TableDestination(reference, null);
}
}).withFormatFunction(new SerializableFunction<TableRow, TableRow>() {
@Override
public TableRow apply(TableRow input) {
LOG.info("format function:"+input.toString());
return input;
}
}).withSchema(schema)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
使元素消失,没有分配空间。
答案 1 :(得分:2)
设置visibility
不会影响元素占用的框区域。如果您还想删除占用的区域,请将该元素的display
属性设置为none
。