Не могу добавить кастомный класс кнопке на яндекс-картах под ИЕ11

98
24 августа 2019, 18:00

Я создаю кнопку на карте с помощью следующего кода:

const clusterShowButton = new ymaps.control.Button({ data: {
    content: SVG_CLUSTER_SHOW,
    title: 'Отключить кластеризацию',
    selectOnClick: true,
    size: 'small'
  }
});

Далее я пытаюсь добавить ей кастомный класс:

clusterShowButton._layout._buttonElement.className += 'my-button';

Во всех остальных браузерах этот метод работает, кроме Internet Explorer 11, потому что там clusterShowButton._layout === null.

Вопросы:

  1. Как навесить кастомный класс? (предложенный мною метод больше похож на костыль)
  2. Если следовать моему методу, как сделать так, чтобы работало в IE11?
  3. Не баг ли это Yandex Maps?
Answer 1

Не завязывайтесь на недокументированные внутренние сущности! Нет никаких гарантий, что ваш код будет работать в другой версии апи, т.к. разметка и стили стандартного макета кнопки не являются документированными и/или стабильными. Так же как и все поля, которых нет в документации, особенно те, которые начинаются с подчеркивания (_layout/_buttonElement). Это не надуманная проблема, например, два года назад дизайн макеты кнопок поменялись.

Вам надо создать свой макет для кнопки реализовав интерфейс ISelectableControlLayout как в примере.

READ ALSO
Как хранить адреса и имена в базе данных?

Как хранить адреса и имена в базе данных?

Мне необходимо хранить в БД адреса и контактные данные людей (телефон, email, ФИО, паспортные данные)Я не очень силен в теории РСУБД, но хочу все...

115
Как вызвать гугл календарь на своем сайте?

Как вызвать гугл календарь на своем сайте?

я недавно столкнулся проблемой использование гугл календаря на своем сайте через iFrameС начала броузер не разрешал вызвать гугл календаря...

123
Три зависимых списка

Три зависимых списка

Есть рабочий код:

82
После поиска кнопки не работают

После поиска кнопки не работают

У меня возникла одна большаяЕсть список кнопок, есть их переключатели(вперёд и назад по этому списку), есть так же поле поиска, по которому...

112