虚拟地球通过地址添加图钉 - 事件无序触发

时间:2010-05-07 15:42:42

标签: javascript javascript-events virtual-earth mappoint

我一直致力于一个映射项目,以显示公用事业公司的服务订单,但我在我的引脚和信息框上编号时遇到了一些问题。以下是我正在努力解决问题的页面的一小部分 http://www.evocommand.com/junk_delete_me/virtual_earth_testing/VirtualEarthTest.html

打开它后,顶部有一个“Test Pins”链接,可以将5个图钉呈现在屏幕上。

我认为问题在于事件的顺序。这些引脚是通过使用名为AddPushpinByAddress()的函数中的map.Find()的地址查找生成的。问题是所有5次AddPushpinByAddress()调用都是在开始从Map.Find()的最后一个参数触发回调函数之前触发的 - 这是实际创建引脚的地方。最终结果是示例中的所有5个引脚都使用最后一个引脚的引脚号,标题和描述进行渲染。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你是完全正确的。由于你在写入时使用全局来保存引脚的ID(以及所有其他值),因此你只能得到最后一个值。

我将在AddPushpinByAddress函数中创建一个新的图钉实例,并将该图钉传递给回调以设置属性。如果你确实需要,我有一些类似的代码,但是将这些代码移出全局并使用你可以传递的图钉对象(或创建自己的对象)将解决这个问题。

答案 1 :(得分:0)

使用本地或全局“var”或多个实例是不成功的。

我最终放弃并在javascript中使用“setTimeout()”强制延迟并允许虚拟地球在下一个图钉接收输入之前找到该位置。我确信有更好的方法,但以完美/准确的方式取得进步的实用性。