Клуб API Карт

ListBoxItem на основе макета и магическое событие

x-cube2007
17 мая 2013, 22:00

Здравствуйте. Помогите разобраться. Проблема такая: есть стандартный листбокс с нестандартными пунктами. Пытаюсь ловить клик по итему, получаю 2 срабатывания. Судя по всему на такое поведение влияет макет итема. Выглядит он так:

ListBoxItemLayout = ymaps.templateLayoutFactory.createClass(
    "<li>
        <span class='lt-checkbox-wrapper'>
            <label class='ltCapt' for=$[data.idCont]>$[data.content]</label>
            <input class='lt-checkbox' id=$[data.idCont] type='checkbox'>
            <label class='lt-checkbox-label' for=$[data.idCont]></label>
        </span>
    </li>" );

Обработчик:

listBox.get(0).events.add('click', function (e) {

    console.log('type: ' + e.get('type'));

    // Propagation не срабатывают

    e.stopImmediatePropagation();

    e.stopPropagation();
});

Если убрать из макета первый <label ...> или <input ...>, обработчик, как и ожидается, сработает 1 раз, но в таком виде 2 раза. Видимо я что-то делаю неправильно, но что?

1 комментарий
Подписаться на комментарии к посту

Возможно у вас срабатывает клик сразу на двух дом-элементах. Попробуйте залезть внутрь события и посмотреть исходный target.

Что-то в стиле e.get('domEvent').get('target')