У меня есть пользовательский элемент Polymer, который предназначен для представления сложного типа ввода. Он содержит фактический тег input
внутри своего Shadow DOM, например:
<polymer-element name="my-input">
<template>
<input type="text" on-blur="{{onBlur}}" on-focus="{{onFocus}}"/>
</template>
<script>
Polymer('my-input', {
onBlur: ...,
onFocus: ...
});
</script>
</polymer-element>
В настоящее время события focus
и blur
передаются внешним слушателям, когда пользователь щелкает между внутренним вводом и другими областями в пользовательском элементе. Если вы откроете консоль Dev Tools в этом CodePen, вы увидите внутренние и события внешнего фокуса и размытия происходят даже при щелчке между вводом и окружающей зеленой областью (которая находится внутри пользовательского элемента).
Нет ли способа зафиксировать события focus
и blur
внутри моего пользовательского элемента, чтобы я мог запускать их только при фактической фокусировке и размытии всего пользовательского элемента?