问题描述
第一次打开该页面 Div1的top值i=-18,刷新一次页面i=636,为什么第一次不能取得top的有效值(636)呢?(Div1的bottom:0px,为了使Div位于底部) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>Untitled Page</title> <script type="text/javascript" src="JS/jquery.js""></script> <script type="text/javascript"> $(function(){ var i=$("#Div1").position().top; alert(i); }) </script> </head><body><p>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/>cccccccccccccccccccccccccccc<br/></p><div id="Div1" style="position:absolute;bottom:0px;">1234567890</div></body></html> 问题补充:ie8下第一次alert(i)弹出了,函数执行了。
解决方案
我在IE8和Google Chrome下试过了 第一次出来的结果IE是687 google是791
解决方案二:
但是我第一次取的值都是对的啊
解决方案三:
因该是页面加载的时候jquery的函数并没有执行,所以取得值默认的,后面取的是缓存