Клуб API Карт

Проблема перезагрузки меток карты в Firefox последней версии

salpeev
22 сентября 2014, 17:32

Доброго времени суток , есть такой код
 

 $(mSearch2.options.results).on("DOMSubtreeModified", function() {
    //* перезагрузка результатов 
    myMap.geoObjects.remove(clusterer);
    var new_object = ymaps.geoQuery([]);
    var massive_coord = $(".coords");
    massive_coord.each(function(i) {
        new_object = new_object.add(ymaps.geoQuery(ymaps.geocode($(this).text(), {
                results: 1
            }))
            .setProperties({
                balloonContentHeader: $(this).data('title'),
                balloonContentBody: $(this).data('description')
            })
        );
        new_object.setOptions({
            iconLayout: 'default#image',
            iconImageHref: 'main/red_marker.png',
            iconImageSize: [20, 35],
            iconImageOffset: [-3, -42]
        })
        var clus = new_object.clusterize();
        myMap.geoObjects.add(clus);
    });
});

 
и он отлично отрабатывает в хроме , в двух словах , удаляет все метки с карты, собирает новый массив адресов и ставит новые метки ,  но в firefox метки просто моргают и остается старый набор меток , посмотреть можно тут http://propery.test.lmrk.ru/  для того чтобы увидеть результат нужно нажать "Посмотреть на карте" , а потом изменить любой фильтр на другое значение, объекты недвижимости должны отфильтроваться и на карте появиться новые метки , но в firefox этого не происходит

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

Для начала - не надо через DOMSubtreeModified работать. 

Как не странно - на этом все.

почему же ?

Потому что руки за такое открывать надо?
Вы хоть отлаживаться умеете?
DOMSubtreeModified у вас дергается из mSearch2.beforeLoad, точнее из задания this.results.css('opacity', .5);
А потом ЕЩЕ раз делается из afterLoad, из this.results.css('opacity', 1);
И всеравно это происходит ДО момента задания html в конечные элементы.

А потом ЕЩЕ раз дергается из html. А ведь еще кеш селекторов есть....


Добавьте вызов функции формирования данных на карте ручками. Когда надо.
http://propery.test.lmrk.ru/assets/components/msearch2/js/web/default.js, строка 338. Как минимум.

 

Просто, понятно, без магии, работает.

грубо , но доходчиво , спасибо , работает

Я же злой полицейский. Даже звезда шерифа есть...