Ajax 板


LINE

不好意思,又有一個問題,可能跟 Js 有關 自己參考網上許多範例做了一個輪播的程式 就是很一般地效果 在一開始照著陣列會有許多的點出現在 google map 上 這些點有設定不同的指標圖、對話框內容文,然後會自動跑下一個輪播每一個陣列的點 我把地址那些放入資料庫隨機撈出來 問題是,一開始都正常 不過當我陣列擺超過 10 個點之後,有些點會出不來(有時後重讀又出得來) 看原始碼內容的陣列是完全正確,都有出現 也就是說撈資料庫出來的所有資料都有放進程式碼陣列裡 但畫面上的 google map 點卻不見了,有時還會有一些點錯亂掉 每次重讀消失的點都不同,錯亂的點都不同(因為我是隨機撈資料庫) 只有地址的部份會亂掉,譬如A點跑到B點,然後B點圖不見,但A圖跟A對話框內容是正確 我有設一個 i 去跑 addresses 陣列內所有資料(給google map的地址) alert 出來確認沒錯,20 筆資料就是 20 (顯示19) 但後來又設一個 total 是自動用 Js 跑 google map 自動輪播的數字 這個數字就會亂掉,照理說要跟 i 一樣才是,不過有時 10 有時 20 有時 11 12 ... 由於 Js 基礎不是很好,不知道是不是哪邊概念錯誤,請高手指教 下面程式碼會說明 <script type="text/javascript"> var map; var marker = new Array(0); var total = 0; var cc = 0; var addresses = ['','','','',''.... // (N個地址) var images = (對應的指標圖) var siteDesc = (滑鼠移到指標上出現的字) var message = (click點選指標出現對話框內的內容) ---------------------------這沒什麼問題,只是點一下指標會出現對應對話框內容 function setHandler(i,point,mark){ GEvent.addListener(mark,"click", function() { var myHtml = message[i]; map.openInfoWindowHtml(point, myHtml); }); } --------------------------- function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.enableScrollWheelZoom(); var geocoder = new GClientGeocoder(); for(var i in addresses){ ------------------------------------------------- addr = addresses[i]; -------------------------------------------------這裡i正確,數字正確 geocoder.getLatLng(addr, function(point){ map.setCenter(point, 16); var icon = new GIcon(); icon.image = images[total]; icon.iconSize = new GSize(60,60); icon.iconAnchor = new GPoint(24,16); icon.infoWindowAnchor = new GPoint(24,16); var mark = new GMarker(point,{icon:icon,title:siteDesc[total]}); map.addOverlay(mark); marker.push(mark); setHandler(total,point,mark); total++; }); -------------------------- 上面每跑一次,就會多一個點照理說 total 是 global 屬性,一開始設 0 i 最後是多少 total 應該也就會是多少 ? 可是最後傳出去時,發現 total 每次重讀數字都不一樣 -------------------------- } -----------------------啟動輪播 setTimeout("move(0)",1000); ----------------------- } } ------------------------ function move(cc){ setTimeout("move("+((cc+1)%total)+")",6000); ^^^^^ //我是在這邊去 alert(total); 發現 total 都不一樣(i是都一樣), //所以這邊就有一點問題 map.panTo(marker[cc].getLatLng()); //google map API 語法,地圖會自動指向該點 var myHtml = message[cc]; map.openInfoWindowHtml(marker[cc].getLatLng(),myHtml); } ------------------------ </script> 如有問題我再補充 謝謝 -- ▍ ▍ ╯╰ ╯╰ ◢◣ ◢◣ 我最愛的 柏柏龍~ 柏柏龍~ ◢██◣ ╮╭ ▎▎╮╭ ▎▎ 柏柏龍~ 柏柏龍~ ⊙ ⊙ ⊙ ⊙ 人人心中都有柏柏龍~ ≡ ▼ ≡ ▲▲ ● ● ≡ ▼ ≡ ■ ■ ■ ■ 憤怒就永遠不會消失~ ⊙⊙ ≡皿 ≡ 炸是最美的擁有~ ^ ^^ ^^^◥ ▍▍▍▍▍▍ ψdiabloq13 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.207.2.26
1F:推 pp0322:有測試網址嗎XD 11/10 12:12
2F:推 wctang:在Timeout執行move時,getLatLng回傳的個數不一定如你預期 11/10 12:39
3F:→ wctang:所以 total 才會每次執行都不同 11/10 12:40
4F:→ wctang:也就是,要考慮到geocoder.getLatLng是非同步的動作 11/10 12:44
5F:→ dspswen:那請問這個該怎麼解決 @@ 11/10 13:08
6F:→ dspswen:To 1F : http://supergm.net/dsps/maps/test.php 11/10 13:11
7F:→ dspswen:每次重讀都會發現有些圖不見 或亂跑 不過程式碼應該對 11/10 13:11
8F:推 alpe:覺得 setHandler 可能有問題. 11/10 22:14







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP