Переключение фокуса на клик в Svelte Component
Я сделал компонент для ввода финансовых показателей, который будет использоваться в моих формах ввода. Теперь он работает очень хорошо, за исключением одного странного поведения: когда я щелкаю по полю ввода, оно получает фокус, как и ожидалось, однако, если щелкнуть по нему, когда оно уже имеет фокус, это убирает фокус.
Есть только один: обработчик щелчка в компоненте, и когда я его удалил, поведение не изменилось. Итак, я не знаю, что вызывает эту странность.
<p>Input with precision=2 <Money id=first bind:value=a precision=2/>
<br/>Value={a}</p>
<hr/>
<p>Input with no precision specified <Money ref:m2 bind:value=b/><br/>
Value={b}</p>
<script>
export default {
data(){return {
a:1234.34,
b:3.14159265
}},
components: {
Money : "./Money.html"
}
}
</script>
<style>
/* How to sytle the component*/
:global(#first) {
font-family:serif;
lobal(#first) {
font-family:serif;
background:#ff9;
}
</style>
Вот ответ, который показывает проблему.
https://svelte.technology/repl?version=2.15.3&gist=27f91d57e7a9267fe7d7d36aad850c7e
1 ответ
Это происходит потому, что div.focused:before {...}
CSS создает псевдоэлемент перед входом. Можете добавить pointer-events: none
чтобы этого не случилось - пример здесь.
(Благодарим njb в нашем чате Discord, чтобы выяснить это - у нас есть канал поддержки, к которому вы также можете обратиться с такими вопросами!)