Я пытаюсь избежать захвата событий в пользовательском элементе полимера, поэтому я хотите инициировать событие только тогда, когда оно провоцируется ['items'], содержащимися в элементе.
У меня есть два разных пользовательских элемента. Оба пользовательских элемента являются расширением core-selector. . Один оборачивает другого.
Итак, у меня есть что-то вроде:
<my-parent-element>
<parentItem>I'm a parent
<my-child-element>
<childItem>I'm a child</childItem>
<childItem>I'm a child</childItem>
<childItem>I'm a child</childItem>
</my-child-element>
</parentItem>
<parentItem>I'm a parent</parentItem>
<parentItem>I'm a parent</parentItem>
</my-parent-element>
Определение пользовательских элементов
<my-parent-element>
имеет собственный обработчик события core-Selected.<my-child-element>
не имеет скрипта и обработчиков событий.
Моя цель:
- Событие запускается только при выборе элемента из
<my-parent-element>
. - Я хочу сохранить независимость компонентов, поэтому я не хотел бы изменять дочерний элемент.
Ситуация
Основываясь на этом ответе, я останавливаю метод проверки полученного элемента , но я думаю, что это не правильное решение...
onCoreSelect: function (event, detail, sender) {
if (!detail.item.classList.contains('child')) {
return; //Dislike!
}
);
... потому что я хотел бы даже не запускать метод.
Вы можете воспроизвести его в этом планкере. onCoreSelect записывает детали, но это должны делать только выбранные родители. Как видите, при нажатии на любой дочерний элемент вызывается событие.
Спасибо!