Делегирование событий не работает в X-tag

Я не могу заставить делегацию работать с событиями. Я пытаюсь вызвать срабатывание определенной функции при нажатии кнопки внутри элемента. Тем не менее, когда я использую синтаксис ('tap:delegate(button)': function(){});Я не получаю ответа. Ниже приведен пример кода, некоторая помощь будет оценена.

HTML:
<my-tag></my-tag>

Js:
xtag.register('my-tag', {
content: '<span>Some Text</span><button>my button</button>',
events: {
 'tap:delegate(button)': function(){
  console.log('the button was pushed');
}
} 
});

1 ответ

Ваш код работает на меня. Что-то может быть загружено не по порядку. Вы можете попробовать обернуть ваш код WebComponentsReady обработчик события:

window.addEventListener('WebComponentsReady', function () {
    xtag.register('my-tag', ...);
});

Я обычно ставлю теги сценария в нижней части <body> чтобы избежать этого.

<body>
  <my-tag></my-tag>

  <script src="lib/x-tag-core.js"></script>
  <script src="components/my-tag.js"></script><!-- xtag.register('my-tag', ...) -->
</body>

Или если вы используете что-то вроде веб-пакета

// components/my-tag.js

var xtag = require('~lib/x-tag-core.js');

module.exports = xtag.register('my-tag', ...);
Другие вопросы по тегам