Клуб API Карт

Запретить дефолтное выполнение у созданной кнопки

Valentin
14 декабря 2016, 14:15

Создали кнопку:

var button  = new ymaps.controlButton({ .... });

повесиили событие:

button.events.add('click', function(e) {

  console.log(e.target) // undefined — почему? странно

  // а теперь самое важное, пробывал:

  return; // не помогает

    e.stopPropagation();
    e.preventDefault();

// так же ничего не меняет.

});

Как при определенном условии, не делать кнопку активной? Так же пробывал  button.state.set('selected', false); внутри ивента никак не влияет. Как быть?

3 комментария
Подписаться на комментарии к посту
> console.log(e.target) // undefined — почему? странно


Потому, что это не DOM
console.log(e.get('target'));


> Как при определенном условии, не делать кнопку активной? 

Нужно установить опцию selectOnClick: false


https://tech.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference/control.Button-docpage/#param-parameters.options.selectOnClick


dimik,
Большое спасибо! А возможно изменить опцию уже созданного элемента (прим. на моб хочу выключать selectOnClick, а на ПК включать)
Valentin,
Возможно через интерфейс менеджера опций у контрола
myButton.options.set("selectOnClick", false);
Обновлено 16 декабря 2016, 17:16