Клуб API Карт

Ошибка в ядре карт при показе-скрытии оверлеев в ИЕ8

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

Используются карты на сайте http://rentcrimea.ru/site/map

Внизу есть легенда, при клике по которой скрываются/показываются группы меток. В Хроме, ФФ все работает без ошибок. В ИЕ8 же, если скрыть и потом кликнуть еще раз, для показа группы - ошибка в яндекс-картах.

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

for (var i in overlaysByTypes[typeId].items) {


как не странно - в один момент времени этот i становиться 'indexOf' и содержит обьект, который никак не плейс марк.


 


самый простой вариант решения этой проблемы -


for (var i in overlaysByTypes[typeId].items) if(parseInt(i) {


 


те проверяем что i - индекс, или можно проверить что плейсмарк - это плейсмарк, либо использовать другие контейнеры\$.each и тд...


 


в общем вы вышли из перечисления массива и пошли по его функциям


 

Константин
28 января 2016, 07:21

> как не странно - в один момент времени этот i становиться 'indexOf' и


> содержит обьект, который никак не плейс марк.


 


кстати это очень странно =)) точнее я на это не мог рассчитывать, что скрипт яндекс-карт меняет прототип массива - так как это очень некрасиво =)


 


но спасибо на то что указали где искать недочет!

Мы не расширяем прототипы стандартных объектов. indexOf в прототип массива добавил ваш скрипт shadowbox.
Константин
28 января 2016, 07:21
тогда извеняюсь =)
Марат Дулин
28 января 2016, 07:21
Файл "js/shadowbox.js", строка 8, символ 7718: "Array.prototype.indexOf=function(S,aG){...".

Все еще считаете, что скрипт Яндекс.Карт меняет прототип массива?