Клуб API Карт

как запустить функцию после загрузки всех оверлеев? (XML)

Пост в архиве.

еще один вопросик)

есть такой код для загрузки меток из XML:

ml_1 = new YMaps.YMapsML('http://rentony.ru/add/room_1.php'
ml_2 = new YMaps.YMapsML('http://rentony.ru/templates/ja_purity/ml_2.xml'
ml_3 = new YMaps.YMapsML('http://rentony.ru/templates/ja_purity/ml_3.xml'
ml_4 = new YMaps.YMapsML('http://rentony.ru/templates/ja_purity/ml_4.xml'
ml_5 = new YMaps.YMapsML('http://rentony.ru/templates/ja_purity/ml_5.xml'
map.addOverlay(ml_1);
map.addOverlay(ml_2);
map.addOverlay(ml_3);
map.addOverlay(ml_4); 

П.С. - в функции присутствует вот такая строчка "map.removeAllOverlays();"

как запустить функцию после загрузки всего этого? window.onload - не канает, с кнопки запускается, а в коде нет, в FireBug пишет что не удается удалить оверлеи, т.к. их просто пока еще нет...

10 комментариев

Попробовал так ( "filter()" - это функция которую надо вызвать ):

YMaps.Events.observe(ml_5, ml_5.Events.Load, filter(), map); 

не работает, может просто синтаксис не так понял?...

можно посмотреть этот пример

http://api.yandex.ru/maps/ymapsml/examples/menufromymapsml.html

 

а вообще не очень понятно зачем создавать и сразу удалять?

а создавать и удалять - это для наглядности работы, просто надо исполнить функцию после загрузки этих XML, а добавление оверлеев происходит как раз только после загрузки XML

делаю так:

YMaps.Events.observe(ml_5, ml_5.Events.Load, filter(), map);

и так

YMaps.Events.observe(map, ml_5.Events.Load, filter(), map);

и так

YMaps.Events.observe(ml_5, ml_5.Events.Load, filter());

- не работает

делаю так :

setTimeout(filter, 5000);  - работает, но это не совсем правильно, т.к. интернет работает по разному у всех 

YMaps.Events.observe(ml_5, ml_5.Events.Load, function(ml){

.....

});

или если функция filter уже объявлена можно так

YMaps.Events.observe(ml_5, ml_5.Events.Load, filter);

делаю так YMaps.Events.observe(ml_5, ml_5.Events.Load, filter);

не работает, FireBug пишет "ml_5 is not defined" 

уррра!!) бабушка-бэтмен спасибо за подсказки)) сделал!, написал так YMaps.Events.observe(ml_5, ml_5.Events.Load, filter());

и засунул это дело в YMaps.jQuery(function () { "сюда" }

до этого не работалло видимо из-за того что обращался к ml_5 не из той функции где она объявлялась... хотя впринципе переменная не локальная и должна была работать, в общем сплошные чудеса =) 

 

засунул это дело в YMaps.jQuery(function () { "сюда" }

это обработчик загрузки документа

то что ты в него засунул сработает когда все элементы страницы загрузятся 

иначе АПИ не успевало загрузится и ты получал ошибку