作者timmy852111 (光⊙﹏⊙)
看板Ajax
标题[问题] 抓取div高度
时间Tue Oct 25 21:05:27 2011
┌───┬────────┐
│ a │ │ div的切割方式如图以及下方所示
├───┤ │
│ │ │ e(d(a,b),c)
│ │ c │
│ b │ │ 使用d将ab区块包住
│ │ │
│ │ │ 然後还有一个e将dc包住
└───┴────────┘
a的高度为固定 bc随内容改变高度 de高度也皆为auto
平常整个e为隐藏状态 当触发事件时会先将整个e显示出来 把资料分别填入abc中
然後使用document.getElementById('DIVid').clientHeight; 取得abc的高度
将a+b与c比较
如果a+b>c的话将c的高度使用c.style.height = temp;//temp=a+b 将高度调整成一样
程式码如下
google.maps.event.addListener(marker, 'click', function() {
calcRoute(marker);//路径规划
$.get(txtLimk,function(txtData){
output(txtData,videoLink);
})
choiceheight();
});
function choiceheight(){
var aheight = document.getElementById('a').clientHeight;
var bheight = document.getElementById('b').clientHeight;
var cheight = document.getElementById('c').clientHeight;
var temp = parseInt(aheight)+parseInt(bheight);
if( temp > parseInt(cheight)){
cheight.style.height = temp;
}
//有在这里加上alert检查过 b的值还是错误的
}
其实抓取a跟c的高度是没有问题的
问题在於b b的内容是放置google map的路径规划文字资料
就我的理解来看
我的程式码是否应该是先执行完//路径规划 这一行将资料填入b
才会执行下方的$.get将另外两笔资料填入ac
然後才会执行抓取高度的function调整高度
但是就alert检查的结果来说 b的文字资料好像是所有程式码执行完之後才会填入
所以无法取得b填入资料後的高度
想请问的是 google的路径规划资料是否真的是在所有动作完成後才会填入
如果是这样有什麽方法可以延後抓取高度的时间吗QQ?
麻烦各位大大了<(_ _)>
--
▄▄▄▄▄ ▄▄▄▄▄▄ ▄ ▄
▄ ▄▄▄▄ ▄
▄▄▄ ▄
▄ ▄ ▄▄▄▄▄▄▄
▄ ▄
▄▄ ▄▄
▄ ▄▄▄▄
▄
▄ ▄ ▄▄▄ くっくっくっ....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.109.100.195
※ 编辑: timmy852111 来自: 120.109.100.195 (10/25 21:11)
1F:推 darkk6:有试过放在 $.get 的 call back function 里面了吗? 10/25 21:31
2F:→ timmy852111:有QQ 结果还是一样囧 10/25 22:10
3F:→ timmy852111:解决了!!!!!!!! 用setTimeout就好了XD 10/26 14:40