html代码
姓名 | 年龄 | 部门 | 详情 | |
张三 | 20 | 客服 | href="#" οnclick="GetDetailInfo(1)">详情 | |
李四 | 21 | 技术 | href="#" οnclick="GetDetailInfo(2)">详情 | |
王五 | 22 | 销售 | href="#" οnclick="GetDetailInfo(3)">详情 |
style="width:800px;height:200px">
jquery代码
function GetDetailInfo(id){
$.ajax({
type:
"post",
async:
true, //使用同步模式
url: requestUrl, //处理程序
data: {
id:id,
type:
"detailInfo"
},
success: function(data) {
if (data == "error") {
alert("详情加载失败,请重试!");
}
else
{
var strHtml = data.split("[@]");
var numHtml = data[0]; //得到记录总数
$("#divMag").height(numHtml*25+200); //当返回的记录数太多时,给弹出层重新设定高度
var top = ($(window).height()-$("#divMag").height())/2;
//设置上边距,垂直居中
$("#divMag").css("top",top);
}
}
});
//ajax结束
}
此页面使用jquery无刷新技术实现详情加载,已经给弹出层重新设定高度,并设置了上边距,但总是出现一个问题,页面初始化后,第一次点击列表中的详情,弹出层跑到最顶层,并且上面一些已经被遮住了,设置上边距根本起不了作用,页面不刷新,第二次,第三次........点击,就可以达到预期的效果,弹出层垂直居中。这时候可以给弹出层页面初始化时设置一下上边距,就是页面加载事件加一句话
this.divMag.Style.Add("top", "100px");
就可以实现预期效果了,测试了一下,还会垂直居中