[問題] 抓取div高度

看板Ajax作者 (光⊙﹏⊙)時間14年前 (2011/10/25 21:05), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
┌───┬────────┐ │ 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)

10/25 21:31, , 1F
有試過放在 $.get 的 call back function 裡面了嗎?
10/25 21:31, 1F

10/25 22:10, , 2F
有QQ 結果還是一樣囧
10/25 22:10, 2F

10/26 14:40, , 3F
解決了!!!!!!!! 用setTimeout就好了XD
10/26 14:40, 3F
文章代碼(AID): #1EfhGP8N (Ajax)
文章代碼(AID): #1EfhGP8N (Ajax)