2010-05-07 58 views
2

我一直致力於一個地圖項目來顯示公用事業公司的服務訂單,但我在獲取我的插針和信息框中的編號時遇到了一些問題。以下是我正在用來演示該問題的一小部分頁面。
http://www.evocommand.com/junk_delete_me/virtual_earth_testing/VirtualEarthTest.html虛擬地球通過地址添加圖釘 - 發生故障的事件

一旦你打開它,在「測試引腳」頂部會出現一個鏈接,它將呈現5個圖釘到屏幕。

我相信問題在於事件的順序。這些引腳是通過在稱爲AddPushpinByAddress()的函數內使用map.Find()的地址查找生成的。問題是AddPushpinByAddress()的所有5個調用在開始從Map.Find()的最後一個參數觸發回調函數之前觸發 - 這是實際創建引腳的地方。最終結果是示例中的所有5個引腳都使用渲染的最後一個引腳的引腳編號,標題和描述進行渲染。有什麼建議麼?

回答

0

使用本地或全局「var」或多個實例不成功。

我最終放棄並在javascript中使用「setTimeout()」來強制延遲,並允許虛擬地球在下一個圖釘接收輸入之前找到位置。我相信有更好的方法,但以進步的名義來說,實用性勝於完美/準確。

0

你完全正確。由於您在使用全局變量來保存引腳的ID(以及所有其他值),因此您只能獲取最後一個值。

我會在您的AddPushpinByAddress函數中創建圖釘的新實例,並將該圖釘傳遞給回調以設置屬性。如果你真的需要,我有一些類似的代碼,但是將它們移出全局變量並使用可以傳遞的圖釘對象(或創建自己的對象)將解決此問題。