Переключение фокуса на клик в Svelte Component - PullRequest
0 голосов
/ 12 ноября 2018

Я создал компонент для ввода финансовых номеров, который будет использоваться в моих формах ввода.Теперь он работает очень хорошо, за исключением одного странного поведения: когда я щелкаю по полю ввода, оно получает фокус, как и ожидалось, однако, если щелкнуть по нему, когда оно уже имеет фокус, это убирает фокус.

Есть только одно: обработчик щелчка в компоненте, и когда я его удалил, поведение не изменилось.Итак, я не знаю, что вызывает эту странность.

<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 Ответ

0 голосов
/ 12 ноября 2018

Это происходит потому, что CSS div.focused:before {...} создает псевдоэлемент перед входом. Вы можете добавить pointer-events: none, чтобы этого не происходило - пример здесь .

(Благодарим njb в нашем Discord chatroom , чтобы выяснить это - у нас есть канал поддержки, на который вы также можете зайти с такими вопросами!)

...