JQUERY获取空间的left和top,弹出DIV层,点击取消关闭后,再次点击top和left不准确了。
显示div部分:
var txt=$("#"+vt).offset();
var txtop=txt.top;
var txleft=txt.left;
$("#repro0up").offset({top:txtop+10,left:txleft+136});
$("#repro0up").fadeIn(1000);
取消关闭div部分:
$("#repro0up").offset({top:0,left:0});
$("#repro0up").hide();
上面这段 我这调试 第一次点击 div的位置是正确无误的 可是当我取消,然后再次点击显示DIV层的时候,这时候的位置就和第一次的不一样了。。。
望高人指点 谢谢~~
------解决方案--------------------$("#repro0up").offset({top:0,left:0});
没必要家这句话
------解决方案--------------------var txt=$("#"+vt).offset();
这个节点是随着你的reproOup变化的?
如果你的txt这个节点不是变化的,那应该不会出现你所说的这个问题。
还有如果是变化的,可以定义一个全局的变量,记住第一次的位置,以后就用这个变量来存储就OK了
var txtop=0;
var txleft=0;
function show(){
if(txtop != 0 && txleft !=0){
// 这里只要记住一次就OK了,以后就全部都用这个top和left,他就不会变化了
var txt=$("#"+vt).offset();
txleft = txt.left;
txtop = txt.top;
}
$("#repro0up").offset({top:txtop+10,left:txleft+136});
$("#repro0up").fadeIn(1000);
}
取消关闭div部分:
$("#repro0up").hide();
------解决方案--------------------贴你的代码全来测试下,应该代码有问题。。
------解决方案--------------------
$("#repro0up").offset({top:xtxtop+10,left:xtxleft+136});
// 改为
$("#repro0up").css({top:xtxtop+10,left:xtxleft+136});