Size: a a a

JavaScript.Ninja

2020 August 21

MK

Maks Kravchenko in JavaScript.Ninja
если навесить событие клика или keyup на инпут
источник

DN

Dima Nazdratenko in JavaScript.Ninja
Illya Klymov
костылями
а как? просто я там выше спрашивал уже, надо реализовать что бы в инпуте было число и человек мог кликнуть в любом месте и эта цифра выделилась и стрелками ее уже как-то инкреминтировать

Наверное сделать под каждую цифру свой инпут и закостомизировать не вариант, потому что должен быть паралельно функционал ввода цифры с клавиатуры. А вот что бы выделить определенную цыфру наверное надо в 1 инпуте как-то кликом
источник

IK

Illya Klymov in JavaScript.Ninja
но оно работает по разному если кликнуть в левую и правую часть символа )
источник

DN

Dima Nazdratenko in JavaScript.Ninja
Maks Kravchenko
если навесить событие клика или keyup на инпут
крутяк! спс
источник

DN

Dima Nazdratenko in JavaScript.Ninja
Illya Klymov
но оно работает по разному если кликнуть в левую и правую часть символа )
да таки поведение это мешает) как можно побороть это?) что бы или символ таки говорило или сместило одну из половин?)
источник

MK

Maks Kravchenko in JavaScript.Ninja
Dima Nazdratenko
да таки поведение это мешает) как можно побороть это?) что бы или символ таки говорило или сместило одну из половин?)
первый костыль, который приходит в голову - обернуть каждый символ в span и отслеживать клик по спану
по клику определять индекс кликнутого спана и сетить его инпуту input.selectionStart = index;
источник

SK

Sergey Kostyrko in JavaScript.Ninja
Dima Nazdratenko
да таки поведение это мешает) как можно побороть это?) что бы или символ таки говорило или сместило одну из половин?)
если отследивать клик - то можно получить его координаты
и можно получить координаты курсора через
getSelection().getRangeAt(0).getBoundingClientRect()

а потом сравнить координаты по x и понять с какой стороны  был клик
в общем как илья и говорил - костыли
источник

IK

Illya Klymov in JavaScript.Ninja
Dima Nazdratenko
да таки поведение это мешает) как можно побороть это?) что бы или символ таки говорило или сместило одну из половин?)
Нет
источник

IK

Illya Klymov in JavaScript.Ninja
Sergey Kostyrko
если отследивать клик - то можно получить его координаты
и можно получить координаты курсора через
getSelection().getRangeAt(0).getBoundingClientRect()

а потом сравнить координаты по x и понять с какой стороны  был клик
в общем как илья и говорил - костыли
напоминаю - символы разной ширины )
источник

IK

Illya Klymov in JavaScript.Ninja
там есть еще интересные баги
источник

IK

Illya Klymov in JavaScript.Ninja
ну то такое
источник

DN

Dima Nazdratenko in JavaScript.Ninja
Illya Klymov
напоминаю - символы разной ширины )
тоесть вариант прописать пользователям кликать с определенной стороны?) Или как идеально реализовать такое?
источник

MK

Maks Kravchenko in JavaScript.Ninja
Maks Kravchenko
первый костыль, который приходит в голову - обернуть каждый символ в span и отслеживать клик по спану
по клику определять индекс кликнутого спана и сетить его инпуту input.selectionStart = index;
в таком варианте не надо прописывать с какой стороны кликать)
источник

IK

Illya Klymov in JavaScript.Ninja
зато юзабилити ад )
источник

DN

Dima Nazdratenko in JavaScript.Ninja
Maks Kravchenko
в таком варианте не надо прописывать с какой стороны кликать)
а что значит каждый символ в спан? это похоже на другой совет что каждый символ это отдельный инпут
Просто мне надо еще паралельно с этим функционалом по клику на стрелку иметь обычный ввод числа в инпут
источник

SK

Sergey Kostyrko in JavaScript.Ninja
Illya Klymov
напоминаю - символы разной ширины )
ну то что я предлагал на ширину символа не полагается - просто пытается понять с какой стороны от курсора был клик - но скорее всего там хватит интересных проблем
источник

MK

Maks Kravchenko in JavaScript.Ninja
Dima Nazdratenko
а что значит каждый символ в спан? это похоже на другой совет что каждый символ это отдельный инпут
Просто мне надо еще паралельно с этим функционалом по клику на стрелку иметь обычный ввод числа в инпут
вот псевдокод:

someString
 .split('')
 .map((letter, index) => {
   const Element = index === activeIndex ? input : span;
   
   return (
     <Element onClick={setActive}>
       {letter}
     </Element>
   );
 });
источник

S

Sergey in JavaScript.Ninja
Всем привет, есть кто знаком с GitLab CI?
Кто писал пайплайн для сборки React Native
Есть три stage lint, build, test
Lint запускается всегд
Build у меня manual а test должен быть доступен только после успешного build
Но пайплайн имеет статус running после успешного lint и без запуска остальных шагов

Как правильно сконфижить это?
источник

S

Sergey in JavaScript.Ninja
Выглядит вот так
источник

S

Sergey in JavaScript.Ninja
Jobs на тесты создается и из-за нее пайплайн имеет статус runnning
источник