Виртуальная Земля добавление кнопок по адресу - события запускаются не по порядку - PullRequest
2 голосов
/ 07 мая 2010

Я работал над картографическим проектом для отображения заказов на обслуживание для коммунальной компании, но у меня возникли некоторые проблемы с получением нумерации на моих выводах и информационных полях. Ниже приведен небольшой фрагмент страницы, с которой я работаю, чтобы продемонстрировать проблему.
http://www.evocommand.com/junk_delete_me/virtual_earth_testing/VirtualEarthTest.html

После того, как вы откроете его, вверху появится ссылка «Test Pins», которая отобразит 5 кнопок на экране.

Я считаю, что проблема заключается в порядке событий. Пины генерируются поиском адресов с использованием map.Find () внутри функции AddPushpinByAddress (). Проблема заключается в том, что все 5 вызовов AddPushpinByAddress () запускаются до того, как in начинает вызывать функции обратного вызова из конечного параметра Map.Find (), в котором фактически создаются контакты. Конечный результат состоит в том, что все 5 выводов в примере отображаются с номером, названием и описанием последнего отображенного вывода. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 25 августа 2010

с использованием локального или глобального "var" или нескольких экземпляров не удалось.

В конце концов я сдался и использовал «setTimeout ()» в javascript, чтобы вызвать задержку и позволить виртуальной земле найти местоположение до того, как он получит входные данные на следующей кнопке. Я уверен, что есть лучшие методы, но практичность во имя прогресса выиграла от совершенства / точности.

0 голосов
/ 28 мая 2010

Ты совершенно прав. Поскольку вы используете глобальную переменную для хранения идентификатора (и всех других значений) булавки, когда она идет на ее запись, вы получите только последнее значение.

Я бы создал новый экземпляр кнопки в вашей функции AddPushpinByAddress и передал бы эту кнопку в функцию обратного вызова, чтобы установить свойства. У меня есть некоторый похожий код, если вам действительно нужно, но переместить его из глобальных и использовать либо объект pushpin (или создать свой собственный объект), который вы можете передать, решит эту проблему.

...